环境python3
调用包configparser
示例文件:example.ini
[last_id]
last_id = 1
[1]
agree = http
cycle = 1000
ip = 1.1.1.1
解决思路:
import configparser
file_path = os.path.join(BaseConfig.BASE_DIR, "example.ini")
conf = configparser.ConfigParser()
# 读ini文件
conf.read(file_path, encoding="utf-8")
print(conf._sections)
通过运行结果发现,所有结果均为OrderedDict格式,将此格式直接转为dict格式即可
代码示例:
import configparser
import os
from settings import BaseConfig
# 继承configparser.ConfigParser,添加as_dict方法, 将self._sections的结果OrderedDict格式,直接用dict()转换一下
class MyParseIni(configparser.ConfigParser):
def as_dict(self):
d = dict(self._sections)
for k in d:
d[k] = dict(d[k])
return d
def parse_ini(file_path):
# 创建管理对象
conf = MyParseIni()
os.path.join(file_path, "cfg.ini")
# 读ini文件
conf.read(file_path, encoding="utf-8")
return conf.as_dict()
if __name__ == '__main__':
file_path = os.path.join(BaseConfig.BASE_DIR, "example.ini")
res = parse_ini(file_path)
print(res)