配置解析器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的方式来做到这一点..它自动读取所有部分和提取此功能?

感谢

+1

假设Python 2.X,除非你需要向后兼容现有的代码,你应该使用'ConfigParser.SafeConfigParser'。 – mhawke 2012-07-13 00:38:12

如果所有部分都有它(或者,如果你知道有一个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")