我在Python 2.7中使用模块configparser。如何从可选部分读取配置值?
在我的配置文件中,我希望日志是可选的;如果该部分不存在,我的解析模块将提供默认值。
我的配置文件看起来像这样:
[log]
filename = C:/tmp/myapp.log
有没有从可能从配置文件中没有一个部分读出值的方法?方法items读取值,但假定该部分存在,如果不存在,则引发异常。
我在Python 2.7中使用模块configparser。如何从可选部分读取配置值?
在我的配置文件中,我希望日志是可选的;如果该部分不存在,我的解析模块将提供默认值。
我的配置文件看起来像这样:
[log]
filename = C:/tmp/myapp.log
有没有从可能从配置文件中没有一个部分读出值的方法?方法items读取值,但假定该部分存在,如果不存在,则引发异常。
ConfigParser有方法has_section
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)
看一看你链接的文档的示例部分。 – Atsch
你尝试过'ConfigParser.NoSectionError'吗? – Gahan