0

我的 python 模块中有以下列表:

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

我将我的应用程序的配置存储在“configs.ini”中,并使用configparser tor 读取它。我检查了 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')]

我认为第二种情况只是让自己变得困难。

于 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 回答
0

您正在寻找的可能是configparser模块。查看这些链接了解更多详情:

1)如何用Python3读写INI文件?

2) http://docs.python.org/2.7/library/configparser.html#examples

于 2013-08-06T16:07:53.413 回答