美文网首页编程学习
Python configparser包读取参数文件,一个简单的

Python configparser包读取参数文件,一个简单的

作者: myshu | 来源:发表于2020-11-05 10:49 被阅读0次

在运行程序时需要读取不同模块的参数,这时候可以用configparser包进行处理,超级方便。
比如参数文件如下:(随便造的)

[Section1]
a =1 ##a
B = "hi"
[Section2]
c= "c"
d = "-p 123"

我写了一个函数来提取参数

import configparser
def get_all_config(conf_file):
    '''
        读取所有的config文件
    :param conf_file: 参数文件
    :return: config[module] 字典,还有默认"DEFAULT"参数模块
    '''
    config = configparser.ConfigParser()
    # 本行代码保证了打印option时,保持原option的大小写样式
    config.optionxform = lambda x:x
    config.read(conf_file)
    # 去除参数value之后的“#”注释,并删除参数两侧空格
    f = lambda x:x.partition("#")[0]
    config = {key1: {key2: f(config[key1][key2]).strip() for key2 in config[key1].keys()} for key1 in config.keys()}
    return config

可以简单的调用:

import configparser
cf_para = get_all_config("config.conf")
print(cf_para['Section1']['a'])  # 1

这个函数主要的重点在于config.optionxform = lambda x:x保留了参数的大小写格式,比如a, B等,而不是都是小写。
然后另外一个点是对提取的参数数据进行了去除参数后的#注释以及两侧的空格

f = lambda x:x.partition("#")[0]
config = {key1: {key2: f(config[key1][key2]).strip() for key2 in config[key1].keys()} for key1 in config.keys()}`

这两句代码是遍历字典的字典,并对值进行了格式化。
希望这个函数对参数解析问题的朋友有帮助,如发现错误或有更好的建议欢迎留言~

相关文章

网友评论

    本文标题:Python configparser包读取参数文件,一个简单的

    本文链接:https://www.haomeiwen.com/subject/ppeovktx.html