Я использую 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