我正在使用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")
吗?请向我解释一下这个?
答案 0 :(得分:1)
defaults()是一种继承自RawConfigParser的方法,不支持支持插值。
我认为您应保留[DEFAULT]
部分,以便为其他部分提供默认设置,而不是尝试将“滥用”作为“普通”部分。 [DEFAULT]
部分具有特殊含义,甚至不包含在sections()
或has_section()
等方法中。
如果您需要“默认”部分,请将其命名为DEFAULT
以外的名称。