0

我有一个 cfg 文件,它有 10 个部分。每个部分都有相似的字段。

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

...

所以现在..我正在做类似的事情..

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

等等

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

谢谢

4

2 回答 2

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']

这真的取决于你想怎么做。

于 2012-07-12T23:03:07.733 回答
1

制作一个字典,将部分作为键,将 ID 作为值。

config = ConfigParser.ConfigParser()
ids    = {}
for section in config.sections():
    if config.has_option(section, "id"):
        ids[section] = config.get(section, "id")
于 2012-07-12T23:05:22.733 回答