2013-10-29 99 views
1

我有一个csv文件由“,”取消。 第一行包含报告名称,第二行包含报告数据。 标题在第3行,下面的所有行都是数据。 如何使用csv模块从第3行而不是1读取标题? 以下是我现在拥有的。python csv标题不在第一行

import csv 
f = open ("myfile.csv", "rb") 
reader = csv.reader(f, delimiter=",") 
headers = reader.next() 
+4

调用'reader.next()'或'未来(读者)'3倍! – falsetru

+0

@falsetru是对的。 'csv'模块不检查所有行是否相同,所以你可以调用'next()'来使用它们并把它们扔掉。 –

+0

实际上,如果你想从额外的行中得到数据,你可以在一行中读取它(如果需要,可以保存),然后创建'csv.reader'对象。当你这样做的时候,文件的当前位置并不一定要在它的开头。 – martineau

回答

2

您可以使用itertools.islice放弃来自迭代器的项目。

from itertools import islice 
reader = islice(csv.reader(f, delimiter=","), 2, None) 
0

如果你的文件不是很大,你可以读到的一切,后来放弃了前两行:

with file("myfile.csv", "rb") as f: 
    reader = csv.reader(f, delimiter=',') 
    lines = list(reader)[2:] 
headers, value_rows = lines[0], lines[1:] 
for row in value_rows: 
    ...