配置文件介绍
配置文件存放内容
- 程序运行环境(加载参数)
- 授权信息
- 程序运行规则
- 程序共用数据等
- 总之,我可以通过修改配置文件,达到控制程序执行的目的,不需要修改代码内部的参数
文件后缀类型
.conf.ini.properties
配置文件存放格式
- 片段 section,片段名一般大写 [SECTION]
- 选项 option
- 值 value
操作配置文件
- 有如下配置文件,根据指定的片段和选项,读取出对应的值,如果指定值,修改这个配置文件
- 代码如下:
import configparser
class OperateConfig:
def __init__(self, filename, section, option):
self.filename = filename
self.section = section
self.option = option
self.conf = configparser.ConfigParser() # 创建实例
self.conf.read(self.filename, encoding='utf-8') # 读取配置文件
def read_config(self):
'''
根据section/option获取对应的value
:return: value
'''
# 获取值.get(),找到section,再找到option
return self.conf.get(self.section, self.option)
def modify_config(self, value=None):
'''
如果value为空,则读取出value,如果value不为空,则修改对应的value
:param value:
:return:
'''
if value is None:
return self.conf.get(self.section, self.option)
# 修改配置文件
else:
self.conf.set(self.section, self.option, value)
with open(self.filename, 'w+') as file:
self.conf.write(file)
return self.conf.get(self.section, self.option)
if __name__ == '__main__':
oc = OperateConfig('pro.conf', 'MODE', 'mode')
print(oc.read_config()) # 获取配置文件
oc.modify_config('2') # 修改配置文件
- 执行结果,配置文件被修改
注意事项
- 所有数据从配置文件中读取出来都是str类型,如果使用原本数据类型,用
eval()
函数转换 - 配置文件必须随运行脚本在同一级目录,否则可能会存在找不到配置文件
- 注意读取配置文件时,需要定义编码格式:
encoding='utf-8'