Python读写配置文件模块--Configobj

Posted tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python读写配置文件模块--Configobj相关的知识,希望对你有一定的参考价值。

一、介绍

我们在项目的开发过程中应该会遇到这样的问题:我们的项目读取某个配置文件,然后才能按照配置的信息正常运行服务,当我们需要对修改服务的某些信息时,可以直接修改这个配置文件,重启服务即可,不用再去打开项目代码进行修改,这样方便了我们后期运维人员的工作。

读取配置文件信息,修改配置文件,我们可以使用Configobj和ConfigParser模块,个人推荐使用Configobj模块,因为Configobj相比于ConfigParser,优势在于Configobj模块的使用更加清晰简单(其实是我看到ConfigParser模块好像复杂一点,自己选了个简单点的模块而已,哈哈哈哈哈)。

pip install configobj

configobj的简单之处就在于,它是以字典的形式来读取/修改配置文件,就跟操作字典一样,很简单,下面看看例子就知道了。

 

二、configobj的使用

1、test.cfg配置文件

配置文件内容如下

[server]
name = zbj
port = 9000
 
[home]
# 注释
area = huizhou

 

2、读取配置文件信息

from configobj import ConfigObj


# 实例化一个Configobj对象,给ConfigObj一个配置文件的路径,然后通过字典来访问成员,子段也是一个字典
cfg_path = "./test.cfg"
config = ConfigObj(cfg_path, encoding=\'UTF-8\')

# 读配置文件
print(config[\'server\'])  # {\'name\': \'zbj\', \'port\': \'9000\'}
print(config[\'server\'][\'name\'])  # zbj

 

3、修改配置文件

from configobj import ConfigObj


cfg_path = "./test.cfg"
config = ConfigObj(cfg_path, encoding=\'UTF-8\')
config[\'server\'][\'name\'] = "clj"
# 修改完记得write写入配置文件
config.write()

 

 

4、给配置文件添加新项

from configobj import ConfigObj

cfg_path
= "./test.cfg" config = ConfigObj(cfg_path, encoding=\'UTF-8\') config[\'school\'] = {} config[\'school\'][\'class\'] = "three" # 只要进行了修改(包括新增删除等)的操作,记得write修改 config.write()

 

 

5、删除配置文件中的某个项

from configobj import ConfigObj


cfg_path = "./test.cfg"
config = ConfigObj(cfg_path, encoding=\'UTF-8\')
del config[\'school\']
del config[\'server\'][\'port\']
config.write()

 

 

6、将配置文件写入到不同的文件

from configobj import ConfigObj


cfg_path = "./test.cfg"
config = ConfigObj(cfg_path, encoding=\'UTF-8\')
config.filename = "./test.ini"
config.write()
# 此时会新建一个test.ini文件,然后会将test.cfg的内容写入到test.ini文件

 

7、创建新的配置文件

from configobj import ConfigObj


# 实例化一个ConfigObj对象
config = ConfigObj()
# filename指定新创建的文件路径和名称
config.filename = \'./my_cfg.ini\'

# 写入配置信息
config[\'people\'] = {}
config[\'people\'][\'name\'] = \'zzbj\'
config[\'people\'][\'age\'] = \'18\'
config.write()

 

以上是关于Python读写配置文件模块--Configobj的主要内容,如果未能解决你的问题,请参考以下文章

Python模块之: configobj(转)

ConfigObj/ConfigParser 与为 Python 设置文件使用 YAML

python ini文件处理

重构 python 模块配置以避免相对导入

python之configParser模块读写配置文件

python-ConfigParser模块读写配置文件