在使用DictReader - Python之前从csv中删除前heades

时间:2016-06-23 06:43:50

标签: python csv parsing

您好我有这样的csv文件

here is some text
some more text
summary
id score
1   33
2   22
3   11
detail 
id try score
1  1    22
1  2    11
2  1    10
2  2    12
3  1    11

我想解析数据id,尝试,将详细信息记录到DictReader之后 我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

你可以看看这个:

import csv

with open('file.txt', 'r') as f:
    text = f.read()

relevant_lines = text.split('detail \n')[1].splitlines()

d_reader = csv.DictReader(relevant_lines, delimiter= ' ', skipinitialspace=True)

print(d_reader.fieldnames)

for row in d_reader:
    print(row)

输出:

['id', 'try', 'score']
{'score': '22', 'try': '1', 'id': '1'}
{'score': '11', 'try': '2', 'id': '1'}
{'score': '10', 'try': '1', 'id': '2'}
{'score': '12', 'try': '2', 'id': '2'}
{'score': '11', 'try': '1', 'id': '3'}

我基本上过滤了包含'detail'(包含此行)的行之前的所有内容,然后将其解析为csv文件。

我使用skipinitialspace=True来确保连续的空格只被解释为一个分隔符。