2013-10-29 107 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: 
    ...