python 中对配置文件的解析 ConfigParser & ConfigObj

python中对于配置文件解析模块有configparser和configobj,但是confiparser有如下的一些缺点

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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值