实例文件

[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

最新文章

  1. C#知识点-委托
  2. UvaOJ10369 - Arctic Network
  3. git 基本配置及使用
  4. grunt + compass
  5. linux命令后面常见的>/dev/null 和 2>&1 的含义
  6. 中国大概能用的NTPserver地址
  7. [转载]传智播客_SQL入门
  8. 趁有空,再了解一下GROOVY中关于类的通例
  9. sql server显示某一列中有重复值的行
  10. python制作爬虫爬取京东商品评论教程
  11. DNS生效时间
  12. poj:4091:The Closest M Points
  13. sed标签
  14. spring中ref属性与<ref/>标签
  15. Python+ Selenium自动化登录腾讯QQ邮箱实例
  16. kubernetes进阶之一:简单例子
  17. .net使用Aspose.Words进行Word替换操作的实现代码
  18. 吴恩达机器学习笔记36-正则化和偏差/方差(Regularization and Bias_Variance)
  19. Logistic 最大熵 朴素贝叶斯 HMM MEMM CRF 几个模型的总结
  20. 监听图片src发生改变时的事件

热门文章

  1. SDUT 3033 这题实在不知道起啥名好了(思维巧法)
  2. 没有该栏目数据可能缓存文件(data/cache/inc_catalog_base.inc)没有更新请检查是否有写入权限
  3. position属性中的绝对定位和相对定位
  4. erlang的base64解码问题
  5. SPOJ:Eagle and Dogs(求树上每个点最远可以走到哪里---树的直径||DP)
  6. 【SOUTH CENTRAL USA 1998】 eight
  7. 【BZOJ 3224】 普通平衡树
  8. Balancing Act(树的重心)
  9. 201响应为什么进了AJAX error回调函数
  10. CS231n 2016 通关 第二章-KNN