0

10個のセクションがあるcfgファイルがあります。各セクションには同様のフィールドがあります。

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

...

だから今..私は次のようなことをしています..

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

等々

これを行うためのより良いよりPythonの方法はありますか..それは自動的にすべてのセクションを読み取り、この機能を抽出しますか?

ありがとう

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 に答える