0

私のpythonモジュールには次のリストがあります:

couples = [("somekey1", "somevalue1"), ("somekey2", "somevalue2"), ("somekey3", "somevalue3"),....]

アプリの構成を「configs.ini」に保存しており、configparserを使用してそれを読み取ります。configparser のドキュメントを確認しましたが、ファイルからリストを読み取る方法が見つかりませんでした。

UPD:構成から次のリストを読み取る 方法を知っている人はいますか?それともファイルに保存する別の方法が存在するのでしょうか?

UPD2:ログインとパスワードのリストです。

4

3 に答える 3

3

これを正しく理解しているかどうかはわかりませんが、構成ファイルを作成して、示したようなリストを簡単に読みたい場合は、configs.ini にセクションを作成します。

[section]
key = value
key2 = value2
key3 = value3

その後

>> config = ConfigParser.RawConfigParser()
>> config.read('configs.ini')
>> items = config.items('section')
>> items
[('key', 'value'), ('key2', 'value2'), ('key3', 'value3')]

これは基本的にあなたが必要だと言うものです。

一方、あなたが言っているのは、構成ファイルに次のものが含まれているということです。

[section]
couples = [("somekey1", "somevalue1"), ("somekey2", "somevalue2"), ("somekey3", "somevalue3")]

できることは、たとえば次のように構成パーサーを拡張することです。

class MyConfigParser(ConfigParser.RawConfigParser):

    def get_list_of_tups(self, section, option):
        value = self.get(section, option)
        import re
        couples = re.finditer('\("([a-z0-9]*)", "([a-z0-9]*)"\)', value)
        return [(c.group(1), c.group(2)) for c in couples]

そして、新しいパーサーがリストを取得できます。

>> my_config = MyConfigParser()
>> my_config.read('example.cfg')
>> couples = my_config.get_list_of_tups('section', 'couples')
>> couples
[('somekey1', 'somevalue1'), ('somekey2', 'somevalue2'), ('somekey3', 'somevalue3')]

2番目の状況は、自分にとって物事を難しくしているだけだと思います.

于 2013-08-08T09:41:16.510 に答える
0

pickle モジュールを使用して、リストをファイルにダンプおよびロードできます。

リストをダンプするには:

import pickle

couples = [("somekey1", "somevalue1"), ("somekey2", "somevalue2"), ("somekey3", "somevalue3"),....]

pickle.dump(couples, open("save.p", "wb"))

リストを読み込むには:

couples = pickle.load(open("save.p", "rb"))
于 2013-08-06T16:04:01.113 に答える