我不确定我是否理解正确,但如果您想创建一个配置文件以轻松读取您显示的列表,然后在您的 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')]
我认为第二种情况只是让自己变得困难。