##config.py
from configparser import ConfigParser
from backports.configparser import SectionProxy
import sys
class _Config_:
def __init__(self, val):
if isinstance(val, ConfigParser):
for i in val.values():
key = i.name.encode('utf-8')
if key == "DEFAULT":
for k,v in val.items(key):
key = k.encode('utf-8')
self.__dict__[key] = v #.encode('utf-8')
else:
self.__dict__[key] = _Config_(val.items(key))
else:
for k,v in val:
key = k.encode('utf-8')
self.__dict__[key] = v #.encode('utf-8')
config = ConfigParser()
argvdict = {}
for i in sys.argv[1:]:
argvdict[tuple(i.split("="))[0]] = tuple(i.split("="))[1]
config.read(argvdict["--config-file"], encoding='utf-8')
CONF = _Config_(config)
#配置文件格式test.conf
[DEFAULT]
class = midlle
[USER]
name= lisi
调用方法
##main.py
from config import CONF
print("class is:", CONF.class)
print("user name is:". CONF.USER.name)
运行方法:
python main.py --config-file=test.conf