问题
在本地开发和测试环境上使用的配置不同,不想每次在本地测试修改参数调试,然后git远程提交又修改回来。
所以想实现类似spring 根据不同启动参数实现不同的配置文件读取
实现
1.读取启动参数
2.根据启动参数判断读取哪个配置文件(这里使用ini)
准备两个配置文件
config.ini
[server]
ip = 192.168.0.100
port = 9990
config-local.ini
[server]
ip = 127.0.0.1
port = 9990
attachment_path = D:\data\attachment\
config.py 使用configparser 模块解析ini文件
from configparser import ConfigParser
config = {
"server": {},
}
def parseIni(env=None):
cfg = ConfigParser()
if env == 'test':
cfg.read("./config-local.ini")
else:
cfg.read("./config.ini")
for param in config:
for k, v in cfg.items(param):
config[param][k] = v
if __name__ == "__main__":
import sys
env = None
if len(sys.argv) > 1:
env = sys.argv[1]
print(len(sys.argv), env)
parseIni(env=env)
验证
分别执行
python config.py
python config.py test
就可以读取不同配置文件了