2017-05-29 60 views
0

我在Python 2.7中使用模块configparser如何从可选部分读取配置值?

在我的配置文件中,我希望日志是可选的;如果该部分不存在,我的解析模块将提供默认值。

我的配置文件看起来像这样:

[log] 
filename = C:/tmp/myapp.log 

有没有从可能从配置文件中没有一个部分读出值的方法?方法items读取值,但假定该部分存在,如果不存在,则引发异常。

+0

看一看你链接的文档的示例部分。 – Atsch

+0

你尝试过'ConfigParser.NoSectionError'吗? – Gahan

回答

0

ConfigParser是所有关于解析文件。顾名思义。如果人们开始使用它进行配置管理,他们将遇到各种奇怪的限制。在ConfigParser中没有一些包装代码的情况下,您不能拥有默认值。 ConfigParser提到的默认值在所有部分之间共享!

我正在积极研究一个名为configmanager的库,现在可以解决其中一些问题。我相信一个人必须首先声明所有可用的配置,并在可能的情况下提供默认值。 configmanager允许这样做。你仍然可以使用configparser进行持久化。

要使用CONFIGMANAGER解决您的问题:

config = Config({ 
    'log': { 
     'filename': 'C:/tmp/myapp.log' 
    } 
}) 
config.configparser.load('config.ini') 
print(config.log.filename.value)