配置解析器python

时间:2012-07-12 22:52:42

标签: python

我有一个cfg文件,其中有10个部分..每个部分都有类似的字段。

[sec1]
id:...
[sec2]
id..

...

所以现在......我正在做类似......

config_instance = ConfigParser.ConfigParser()
id1 = config_instance.get("sec1","id")
id2 = config_instance.get("sec2","id")

等等

有没有更好的pythonic方法来做到这一点..它会自动读取所有部分并提取此功能?

由于

2 个答案:

答案 0 :(得分:2)

如果所有部分都有它(或者如果您知道具有id字段的部分列表),您可以执行以下操作:

sections=config_instance.sections()
ids=[config_instance.get(sec,'id') for sec in sections]

如果你愿意,你可以解压缩它们,但我更喜欢这个列表:

id1,id2,... = ids

或者,您可以将其作为字典(python 2.7 +):

ids={ sec:config_instance.get(sec,'id') for sec in sections }
print ids['sec1']

这实际上取决于你想要怎么做。

答案 1 :(得分:1)

创建一个字典,其中部分为键,ID为值。

config = ConfigParser.ConfigParser()
ids    = {}
for section in config.sections():
    if config.has_option(section, "id"):
        ids[section] = config.get(section, "id")