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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM