依然饭跑跑 发表于 2018-8-10 09:37:03

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文件:
  
servername = 192.168.11.1
  
serverport = 8000
  
# 这里是注释
  
server = localhost
  
port = 8000
  A: 解析文件:
from configobj import ConfigObj  
#
  
conf_ini = "./test.ini"
  
config = ConfigObj(conf_ini,encoding='UTF8')
  
#
  
# 读配置文件
  
#
  
print config['server']
  
print config['server']['servername']
  B: 修改配置文件
from configobj import ConfigObj  
#
  
conf_ini = "./test.ini"
  
config = ConfigObj(conf_ini,encoding='UTF8')
  
config['server']['servername'] = "127.0.0.1"
  
config.write()
  C:添加新项:
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: 删除项:
from configobj import ConfigObj  
#
  
conf_ini = "./test.ini"
  
config = ConfigObj(conf_ini,encoding='UTF8')
  
del config['client_srv']['port']
  
config.write()
  E: 将配置文件写入到不同的文件:
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()
页: [1]
查看完整版本: Python模块之: configobj