一、介绍
我们在项目的开发过程中应该会遇到这样的问题:我们的项目读取某个配置文件,然后才能按照配置的信息正常运行服务,当我们需要对修改服务的某些信息时,可以直接修改这个配置文件,重启服务即可,不用再去打开项目代码进行修改,这样方便了我们后期运维人员的工作。
读取配置文件信息,修改配置文件,我们可以使用Configobj和ConfigParser模块,个人推荐使用Configobj模块,因为Configobj相比于ConfigParser,优势在于Configobj模块的使用更加清晰简单(其实是我看到ConfigParser模块好像复杂一点,自己选了个简单点的模块而已,哈哈哈哈哈)。
1
|
pip install configobj
|
configobj的简单之处就在于,它是以字典的形式来读取/修改配置文件,就跟操作字典一样,很简单,下面看看例子就知道了。
二、configobj的使用
1、test.cfg配置文件
1
2
3
4
5
6
7
|
[server]
name = zbj
port = 9000
[home]
# 注释
area = huizhou
|
2、读取配置文件信息
1
2
3
4
5
6
7
8
9
10
|
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、修改配置文件
1
2
3
4
5
6
7
8
|
from configobj import ConfigObj
cfg_path = "./test.cfg"
config = ConfigObj(cfg_path, encoding = 'UTF-8' )
config[ 'server' ][ 'name' ] = "clj"
# 修改完记得write写入配置文件
config.write()
|
4、给配置文件添加新项
1
2
3
4
5
6
7
8
9
|
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、删除配置文件中的某个项
1
2
3
4
5
6
7
8
|
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、将配置文件写入到不同的文件
1
2
3
4
5
6
7
8
|
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、创建新的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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模块的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/Zzbj/p/12300897.html