我有一个文件,其中的部分由标题内的括号表示。即[坐标],它包含一个点ID,它是xy坐标。
在整个文件中,还有其他部分以相同的标题格式[some_string]开头。
我想将每个部分分成列表列表。
示例输入格式:
[Heading 1]
ID x y
1 x1 y1,
2 x2 y2,
.
.
.
n xn yn
[Heading 2]
ID info
1 info1
2 info2
示例输出
Heading1 = [[1,x1,y1],[2,x2,y2],...,[n,xn,yn]]
Heading2 = [[1,info1],[2,info2],...,[n,infon]]
答案 0 :(得分:0)
迭代文件中的行。如果该行是标题,请在词典中添加一个条目。如果该行不是标题,请将其添加为最后一个标题的条目。
with open("data") as f:
d = {}
header = None
for line in f:
if line.startswith('['):
header = line.strip()
d[header] = []
else:
d[header].append(line.split())
之后,d
{'[Heading 1]': [['ID', 'x', 'y'], ['1', 'x1', 'y1,'], ['2', 'x2', 'y2,'], ['n', 'xn', 'yn']],
'[Heading 2]': [['ID', 'info'], ['1', 'info1'], ['2', 'info2']]}