配置解析器python
问题描述:
我有一个cfg文件,它有10个部分......每个部分都有类似的字段。配置解析器python
[sec1]
id:...
[sec2]
id..
...
所以现在..我做这样的事情..
config_instance = ConfigParser.ConfigParser()
id1 = config_instance.get("sec1","id")
id2 = config_instance.get("sec2","id")
等
有没有更好更Python的方式来做到这一点..它自动读取所有部分和提取此功能?
感谢
答
如果所有部分都有它(或者,如果你知道有一个ID字段节的列表),你可以这样做:
sections=config_instance.sections()
ids=[config_instance.get(sec,'id') for sec in sections]
然后你可以,如果解压它们你想要的,但我更喜欢列表:
id1,id2,... = ids
或者,你可以做一个字典(蟒蛇2.7+):
ids={ sec:config_instance.get(sec,'id') for sec in sections }
print ids['sec1']
这实际上只取决于你想怎么做。
答
制作一个字典,其中的部分作为键和ID作为值。
config = ConfigParser.ConfigParser()
ids = {}
for section in config.sections():
if config.has_option(section, "id"):
ids[section] = config.get(section, "id")
假设Python 2.X,除非你需要向后兼容现有的代码,你应该使用'ConfigParser.SafeConfigParser'。 – mhawke 2012-07-13 00:38:12