使用ConfigParser读取部分下的列表

时间:2019-05-09 08:49:36

标签: python-3.x configparser

我正尝试从文件中读取具有以下部分的结构:

[some_section]
102.45
102.68
103.1
109.4

它基本上具有一些用'\n'隔开的值

有没有办法阅读这篇文章?

我已经尝试了以下方法:

# ConfigParser(strict=Flase) the parser will allow for duplicates in a section or option 
# ConfigParser(allow_no_value=True) the parser will allow for settings without values
parser = ConfigParser(allow_no_value=True, strict=False)
parser = ConfigParser()
parser.read(file)
my_list = parser.options('some_section')

问题在于解析器正在跳过重复值,而我需要保留这些重复值。

2 个答案:

答案 0 :(得分:1)

由于配置文件类似于键值(请参阅设置键(属性)-https://en.wikipedia.org/wiki/INI_file),而您只有键,请跳过这些值:请参见https://docs.python.org/3/library/configparser.html

类似

[some_section]
  Value1=100.2
  Value2=101.3

会工作

答案 1 :(得分:0)

如果您的txt文件如下所示:

[some_section]
102.45
102.68
103.1
109.4

您可以尝试以下方法:

def parse(File):
    sectionData = {}
    with open(File, 'r') as f:
        # fist line: section name
        line = f.readline()
        sectionName = line[1:-2]
        sectionData[sectionName] = []    
        while line:
            # read and drop '\n'
            line = f.readline()[:-1]
            # skip last ''
            if line == '':
                break
            sectionData[sectionName].append(line)
    return sectionData

result = parse('test.txt')
print(result)

您将获得:

{'some_section': ['102.45', '102.68', '103.1', '109.4']}