python configparser 模塊
阿新 • • 發佈:2018-03-26
spa fault rem 修改配置 bsp true fig remove 版本
configparser 模塊是用於生成和修改常見配置文檔,當前模塊的名稱在 python 3.x 版本中變更為 configparser。
示例配置文件
[DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 [test1.net.cn] user = test host = localhost port = 8080 [top.net.cn] test_port = 9090 user = root port = 2202
1、生成配置文件
import configparser config= configparser.ConfigParser() config["DEFAULT"] = { ‘ServerAliveInterval‘:45, ‘Compression‘:‘yes‘, ‘CompressionLevel‘:9 } config[‘test1.net.cn‘] = dict() # 使某一塊配置等於一個字典 config[‘test1.net.cn‘][‘user‘] = ‘test‘ #使用鍵值對的方式添加一行配置 config[‘test1.net.cn‘][‘host‘] = ‘localhost‘ config[‘test1.net.cn‘][‘port‘] = ‘8080‘ #所有的值都以字符串的方式傳進去 config[‘top.net.cn‘] = dict() top = config[‘top.net.cn‘] top[‘test_port‘] = ‘9090‘ top[‘user‘] = ‘root‘ top[‘port‘] = ‘2202‘ with open(‘test.ini‘,‘w‘) as configfile: config.write(configfile) # 最後一定要寫入到配置文件
#####################
[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
[test1.net.cn]
user = test
host = localhost
port = 8080
[top.net.cn]
test_port = 9090
user = root
port = 2202
#####################
2、讀取配置文件
import configparser config = configparser.ConfigParser() config.read(‘test.ini‘) print (‘top.net.cn‘ in config) # 判斷一個sections是否在配置文件中 for key in config: # 遍歷所有的sections print (key) print (config.sections()) # 直接打印所有的sections print (config.defaults()) # 獲取DEFAULT的特殊方法,獲取那個單獨的sections,都會帶有DEFALUT的值。 print (config[‘test1.net.cn‘][‘port‘]) # 獲取單獨的某一個記錄 print (config.items(‘top.net.cn‘)) # 獲取一個sections的記錄 print (config.options(‘test1.net.cn‘)) # 獲取test1.net.cn的sections,其中也包括DEFALUT的值 print (config.items(‘top.net.cn‘)) #獲取top.net.cn的所有記錄 var = config.get(‘top.net.cn‘,‘test_port‘) #獲取某一個sections下的一個key的值 print (var) # True # DEFAULT # test1.net.cn # top.net.cn # [‘test1.net.cn‘, ‘top.net.cn‘] # OrderedDict([(‘serveraliveinterval‘, ‘45‘), (‘compression‘, ‘yes‘), (‘compressionlevel‘, ‘9‘)]) # 8080 # [(‘serveraliveinterval‘, ‘45‘), (‘compression‘, ‘yes‘), (‘compressionlevel‘, ‘9‘), (‘test_port‘, ‘9090‘), (‘user‘, ‘root‘), (‘port‘, ‘2202‘)] # [‘user‘, ‘host‘, ‘port‘, ‘serveraliveinterval‘, ‘compression‘, ‘compressionlevel‘] # [(‘serveraliveinterval‘, ‘45‘), (‘compression‘, ‘yes‘), (‘compressionlevel‘, ‘9‘), (‘test_port‘, ‘9090‘), (‘user‘, ‘root‘), (‘port‘, ‘2202‘)] # 9090
3、修改配置文件
import configparser config = configparser.ConfigParser() config.read(‘test.ini‘) # 刪除已經存在的sections top.net.cn。 remove_sections = config.remove_section(‘top.net.cn‘) # 如果一個sections存在,再次添加就會出現異常。所以我現在先刪除,然後再添加。 # add_section = config.has_section(‘leslie‘) config.remove_section(‘leslie‘) # 添加一個不存在的sections。 add_section = config.add_section(‘leslie‘) # 對已經存在的sections中添加記錄。 config.set(‘leslie‘,‘name‘,‘xikang‘) # 刪除已經在sections中的一條記錄。 config.remove_option(‘test1.net.cn‘,‘port‘) # 最後一定要把這些修改寫到文件中。 config.write(open(‘test.ini‘,‘w‘))
python configparser 模塊