2011-01-24 54 views
18

如何在使用DictReader時跳過CSV中的一行記錄?Python 3.2在csv.DictReader中跳過一行

代碼:

import csv 
reader = csv.DictReader(open('test2.csv')) 
# Skip first line 
reader.next() 
for row in reader: 
    print(row) 

錯誤:

Traceback (most recent call last): 
    File "learn.py", line 3, in <module> 
    reader.next() 
AttributeError: 'DictReader' object has no attribute 'next' 
+0

無關,與這個問題,但你應該打開你的文件是這樣的:'開(「test2.csv」,換行符=「」)`。 ..看到csv.reader文檔 – 2011-01-24 23:04:46

+0

我讀了CSV.Reader文檔。此屬性似乎有助於保留多行CSV。由於我的CSV文件是多行的,爲我的open命令添加`newline =''`還是謹慎的嗎? – paragbaxi 2011-01-25 19:30:23

回答

20

您使用next(reader)代替。

來源:csv.DictReader documentation

+2

這是因爲它是Python 3,而不是Python 2. – 2011-01-24 22:20:24

6

因爲Python 2.6,你應該使用下一個(富)而不是foo.next()。

6

它被認爲在python2錯誤有方法稱爲next()代替__next__()

next(obj)現在要求obj.__next__()就像strlen等,因爲它應該。

通常不會直接調用obj.__next__(),就像直接調用obj.__str__()一樣,如果需要對象的字符串表示形式。

方便知道,如果你發現自己寫不尋常的迭代器