您的位置:首页 > 编程语言 > Python开发

python对ini配置文件处理

2015-11-26 20:30 836 查看

实例文件

[root@docker2 ~]# cat test.ini [base] host = 192.168.88.121 port = 3306 user = root path = /home passwd = 123 [callback] path = /Autops alert = yes count = 1 ftp = no

基础用法:代码片段

>>> cf.read("test.ini") #读取配置文件 ['test.ini'] >>> cf.sections() #片段名 ['base', 'callback'] >>> cf.options("callback") #配置key值/配置项 ['path', 'alert', 'count', 'ftp'] >>> cf.items("callback") #配置选项和值 [('path', '/Autops'), ('alert', 'yes'), ('count', '1'), ('ftp', 'no')] >>> cf.get("base","port") '3306' >>> cf.get("base","passwd") #没有的key的会报错 Traceback (most recent call last): ConfigParser.NoOptionError: No option 'passwd' in section: 'base' >>> cf.set("base","passwd","123") #设定选项,key可以时不存在的 >>> cf.write(open("test.ini","w")) #写入配置文件 >>> cf.getint('base','port') #直接读出int型,但value必须可以转成int 3306 >>> cf.getfloat('base','port') 3306.0 >>> cf.getboolean('callback','alert') #0/no/false/off都视为False, #1/yes/true/on视为True True >>> cf.getboolean('callback','count') True

注意事项:

当配置文件中有定义DEFAULT片段时,在其他片段中找不到的相应的key时,就会到DEFAULT中去查找,如果还是没有就会报错NoOptionError
[DEFAULT] dbn=mysql user=root [base] user = autops >>> cf.get('base','user') 'autops' >>> cf.get('base','dbn') 'mysql #dbn的值是default里的

可以像字符串进行变量替换,形成一个大字符串 %s
[DEFAULT] conn_str=%(dbn)s -u%(user)s -p%(passwd)s %(db)s dbn=mysql user=root host = 192.168.88.121 port = 3306 [db1] port = 3307 user = root db = autops passwd = 123 [db2] user = monitor db = monitor passwd = 123

结果:

>>> cf.get("db1","conn_str") 'mysql -uroot -p123 autops' >>> cf.get("db2","conn_str") 'mysql -umonitor -p123 monitor

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: