Python模塊之: configobj(轉)


原來也有寫過一篇文章Python模塊之: ConfigParser 用來解析INI文件,但是在使用過程中存在一些問題。比如:
1,不能區分大小寫。
2,重新寫入的ini文件不能保留原有INI文件的注釋。
3,重新寫入的ini文件不能保持原有的順序。
4,不支持嵌套。
5,不支持格式校驗。
我本來是想擴展ConfigParser來支持上面的一些缺點的,但是我覺得應該有人有類似的問題並應該有相關的模塊滿足
我上面的需求的,於是放G搜索之。得到一個Lib: configobj。下面我將舉例說明其常用的幾個方法:
項目地址:http://www.voidspace.org.uk/python/configobj.html
在介紹之前,還是先各處初始化的test.ini文件:

1
2
3
4
5
6
7
8
[server]
servername = 192.168.11.1
serverport = 8000
 
[client_srv]
# 這里是注釋
server = localhost
port = 8000

A: 解析文件:

1
2
3
4
5
6
7
8
9
from configobj import ConfigObj
#
conf_ini = "./test.ini"
config = ConfigObj(conf_ini,encoding = 'UTF8' )
#
# 讀配置文件
#
print config[ 'server' ]
print config[ 'server' ][ 'servername' ]

B: 修改配置文件

1
2
3
4
5
6
from configobj import ConfigObj
#
conf_ini = "./test.ini"
config = ConfigObj(conf_ini,encoding = 'UTF8' )
config[ 'server' ][ 'servername' ] = "127.0.0.1"
config.write()

C:添加新項:

1
2
3
4
5
6
7
from configobj import ConfigObj
#
conf_ini = "./test.ini"
config = ConfigObj(conf_ini,encoding = 'UTF8' )
config[ 'new_items' ] = {}
config[ 'new_items' ][ 'Items1' ] = "test items"
config.write()

D: 刪除項:

1
2
3
4
5
6
from configobj import ConfigObj
#
conf_ini = "./test.ini"
config = ConfigObj(conf_ini,encoding = 'UTF8' )
del config[ 'client_srv' ][ 'port' ]
config.write()

E: 將配置文件寫入到不同的文件:

1
2
3
4
5
6
7
from configobj import ConfigObj
#
conf_ini = "./test.ini"
config = ConfigObj(conf_ini,encoding = 'UTF8' )
del config[ 'client_srv' ][ 'port' ]
config.filename = "./test1.ini"
config.write()


免責聲明!

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



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