我使用ConfigObj以格式解析配置文件:
[APACHE]
init_script=
...
[TOMCAT]
[[TOMCAT1]]
init_script =
[[TOMCAT2]]
init_script =
在某些情况下[TOMCAT]部分可能有嵌套子部分,有时不是 - 只有单个根实例[TOMCAT]。
我在python中很新鲜如此有趣,是否有一种方便的方法来遍历配置文件并只获取包含嵌套子节元素的元素。
目前我使用这种方法:
def is_section(config_section):
"""
Check that config elemet is a section
"""
try:
config_section.keys()
except AttributeError:
return False
else:
return True
onfig = ConfigObj(config_file,list_values=True,interpolation=True)
sections = config.keys()
for section in sections:
if is_section(config[section]):
for subsection in config[section]:
if is_section(config[section][subsection]):
print "Subsection ", subsection
答案 0 :(得分:4)
您可以使用方法walk
并打印depth
大于1的部分。
def gather_subsection(section, key):
if section.depth > 1:
print "Subsection " + section.name
config.walk(gather_subsection)
<强>深度强>
当前的嵌套级别 部分。
如果您创建一个新的ConfigObj并添加 部分,1将被添加到深度 部分之间的水平。