阅读部分中的所有名称和值对

时间:2015-09-28 21:49:32

标签: python python-2.7

我有一个包含两个部分的配置文件:

[Test]
sample1=abc
test1=123
test2=xxx

[Test2]
sample2=abc
test2=123
test2=xxx

我正在使用配置解析器来读取每个名称和值。但问题是这个列表是动态的,不会是相同的' sample1',' test1',' test2'一直以来。

因此,对于当前部分,我的输出将是 test-string=abc, 123, xxx test-string2=abc, 123, xxx 如果将两个新值作为xyz和456添加到此测试部分,那么我的输出将是 test-string=abc, 123, xxx, xyz, 456test-string2=abc, 123, xxx

此文件将来会有更多部分,我希望每个部分都这样做。

除了configparser之外还有其他选择吗?

由于

2 个答案:

答案 0 :(得分:1)

我不确定问题是什么,但我猜你的文件会是这样的

[Section1]
somekey=val
anotherkey=val
wedontknowthesekeys=val
...

你需要获得key,value对,而不知道密钥是什么。这并不难。

import configparser

config = configparser.ConfigParser()
config.read('path/to/config.ini')

sections = config.sections()  # does not include defaults!
for section in sections:
    items = config.items(section)
    # items == [("somekey", "val"),
    #           ("anotherkey", "val"),
    #           ("wedontknowthesekeys", "val"),
    #           ...]

答案 1 :(得分:0)

这闻起来像字典的典型输入。假设您已经在行中读取了一个字符串,例如“sample = abc”。现在......

ref_dict = {}
for line in my_file:
    key, value = line.split('=')
    ref_dict[key] = value

print ref_dict