对configparser的一个简单扩展,它允许嵌套的回退配置
allya.nestedconfigparser的Python项目详细描述
默认情况下,configparser只加载“vars”、“section”和“default_section”中的值。此扩展允许使用节拆分器(默认为“.”)来嵌套节,并尝试从“vars”、然后是“section”、然后是其逻辑父级,最后是“default_section”中查找值。
例如,给定以下配置:
[DEFAULT] alpha=first level [section] beta=second level [section.subsection] gamma=third level
默认的configparser的行为如下:
>>> settings = configparser.ConfigParser() >>> settings.read('config.ini') ['config.ini'] >>> settings.get('section.subsection', 'alpha') first level >>> settings.get('section.subsection', 'beta') None >>> settings.get('section.subsection', 'gamma') third level
相反,在此扩展中,行为将是:
>>> settings = nestedconfigparser.NestedConfigParser() >>> settings.read('config.ini') ['config.ini'] >>> settings.get('section.subsection', 'alpha') first level >>> settings.get('section.subsection', 'beta') second level >>> settings.get('section.subsection', 'gamma') third level
这个扩展支持理论上无限级别的嵌套。它也不要求每个级别的分段存在于没有附加配置的情况下。
注意:如果在使用“NestEdTrimePalpSer..NestDistCopyPARServer())获取时,此扩展不会引起NoStError错误。这是因为它将尝试回退到更高的部分,并避免在最高的部分没有任何附加配置的可能为空的部分。