python对ini配置文件处理
实例文件:
[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
最新文章
- C#知识点-委托
- UvaOJ10369 - Arctic Network
- git 基本配置及使用
- grunt + compass
- linux命令后面常见的>;/dev/null 和 2>;&;1 的含义
- 中国大概能用的NTPserver地址
- [转载]传智播客_SQL入门
- 趁有空,再了解一下GROOVY中关于类的通例
- sql server显示某一列中有重复值的行
- python制作爬虫爬取京东商品评论教程
- DNS生效时间
- poj:4091:The Closest M Points
- sed标签
- spring中ref属性与<;ref/>;标签
- Python+ Selenium自动化登录腾讯QQ邮箱实例
- kubernetes进阶之一:简单例子
- .net使用Aspose.Words进行Word替换操作的实现代码
- 吴恩达机器学习笔记36-正则化和偏差/方差(Regularization and Bias_Variance)
- Logistic 最大熵 朴素贝叶斯 HMM MEMM CRF 几个模型的总结
- 监听图片src发生改变时的事件
热门文章
- SDUT 3033 这题实在不知道起啥名好了(思维巧法)
- 没有该栏目数据可能缓存文件(data/cache/inc_catalog_base.inc)没有更新请检查是否有写入权限
- position属性中的绝对定位和相对定位
- erlang的base64解码问题
- SPOJ:Eagle and Dogs(求树上每个点最远可以走到哪里---树的直径||DP)
- 【SOUTH CENTRAL USA 1998】 eight
- 【BZOJ 3224】 普通平衡树
- Balancing Act(树的重心)
- 201响应为什么进了AJAX error回调函数
- CS231n 2016 通关 第二章-KNN