Python ConfigParser,DEFAULT部分中的插值,可能吗?

时间:2012-10-26 12:03:35

标签: python python-2.7 configparser

我正在使用SafeConfigParser,我的配置文件包含[DEFAULT]部分,我使用以下代码来提取该部分。

parser = SafeConfigParser(allow_no_value=True)
parser.optionxform = str  # makes names case sensitive
defaultAttributesDic = parser.defaults()

但我的DEFAULT部分包含插值,例如:

A= 10000
B= %(A)s

但问题是defaults()返回实际的原始值(不是插值)。 这是为什么?什么时候可以有用?我不明白这个决定背后的原因?

我正在使用parser.items(section)阅读其他部分,并且工作正常。内插返回值。我应该跳过defaults并使用items("DEFAULT")吗?请向我解释一下这个?

1 个答案:

答案 0 :(得分:1)

defaults()是一种继承自RawConfigParser的方法,不支持支持插值。

我认为您应保留[DEFAULT]部分,以便为其他部分提供默认设置,而不是尝试将“滥用”作为“普通”部分。 [DEFAULT]部分具有特殊含义,甚至不包含在sections()has_section()等方法中。

如果您需要“默认”部分,请将其命名为DEFAULT以外的名称。