我正尝试从文件中读取具有以下部分的结构:
[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')
问题在于解析器正在跳过重复值,而我需要保留这些重复值。
答案 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']}