此模块用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser。
来看一个好多软件的常见配置文件格式如下
[DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [bitbucket.org] User = hg [topsecret.server.com] Port = 50022 ForwardX11 = no
创建这样文件
import configparser config = configparser.ConfigParser() config["DEFAULT"] = { # 所有参数必须是字符串 "ServerAliveInterval": "45", "Compression": "yes", "CompressionLevel": "9", "ForwardX11": "yes" } config["bitbucket.org"] = {} bitbucket = config["bitbucket.org"] bitbucket["User"] = "hg" config["topsecret.server.com"] = { "Port": "50022", "ForwardX11": "no", } config.write(open("cmz.ini","w"))
查询,修改,删除
# 查询 import configparser config = configparser.ConfigParser() config.read("cmz.ini") print(config.sections()) # 查所有节点 for item in config.sections(): print(item) print(config["bitbucket.org"]["User"]) for i in config["bitbucket.org"]: # 查看bitbucket.org下面的所有元素option print(i) print(config.has_section("bitbucket.org")) # 判断是否有bitbucket.org节点 print(config.has_option("bitbucket.org","forwardx11"))# 判断bitbucket.org节点下是否有forwardx11 print(config.get("bitbucket.org","user")) print(config.items("DEFAULT")) # print(config.options("DEFAULT")) # 改
# 所有修改的值必须是str set的三个参数分别是setion option value
config.set("DEFAULT","compressionlevel","10")
config.write(open("cmz.ini","w")) # 在覆盖源文件
# 删除
config.remove_option("DEFAULT","compressionlevel") # 删除
option config.remove_section("bitbucket.org")
# 删除sention包括sention下面的所有options
config.write(open("cmz.ini","w"))
解析配置文件
>>> import configparser >>> config = configparser.ConfigParser() >>> config.sections() [] >>> config.read('example.ini') ['example.ini'] >>> config.sections() ['bitbucket.org', 'topsecret.server.com'] >>> 'bitbucket.org' in config True >>> 'bytebong.com' in config False >>> config['bitbucket.org']['User'] 'hg' >>> config['DEFAULT']['Compression'] 'yes' >>> topsecret = config['topsecret.server.com'] >>> topsecret['ForwardX11'] 'no' >>> topsecret['Port'] '50022' >>> for key in config['bitbucket.org']: print(key) ... user compressionlevel serveraliveinterval compression forwardx11 >>> config['bitbucket.org']['ForwardX11'] 'yes'
其它增删改查语法
[group1] k1 = v1 k2:v2 [group2] k1 = v1 import ConfigParser config = ConfigParser.ConfigParser() config.read('i.cfg') # ########## 读 ########## #secs = config.sections() #print secs #options = config.options('group2') #print options #item_list = config.items('group2') #print item_list #val = config.get('group1','key') #val = config.getint('group1','key') # ########## 改写 ########## #sec = config.remove_section('group1') #config.write(open('i.cfg', "w")) #sec = config.has_section('wupeiqi') #sec = config.add_section('wupeiqi') #config.write(open('i.cfg', "w")) #config.set('group2','k1',11111) #config.write(open('i.cfg', "w")) #config.remove_option('group2','age') #config.write(open('i.cfg', "w"))