标题后抓取部分txt

时间:2015-06-11 18:24:32

标签: python-3.x

我有一个文件,其中的部分由标题内的括号表示。即[坐标],它包含一个点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]]

1 个答案:

答案 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']]}