2011-01-24 126 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__()一样,如果需要对象的字符串表示形式。

方便知道,如果你发现自己写不寻常的迭代器