Python 3.2在csv.DictReader中跳过一行

par*_*axi 20 python csv python-3.x

使用DictReader时如何跳过CSV中的一行记录?

码:

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

错误:

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

Seb*_*olm 23

next(reader)改用.

来源:csv.DictReader文档

  • 这是因为它是Python 3,而不是Python 2. (2认同)

Len*_*bro 6

从Python 2.6开始,你应该使用next(foo)而不是foo.next().


Joh*_*ooy 6

python2中的错误被认为是调用方法next()而不是__next__()

next(obj)现在调用obj.__next__()就像str,len等等,因为它应该.

如果你想要一个对象的字符串表示,你通常不会obj.__next__()直接调用,因为你不会obj.__str__()直接调用.

很方便知道你是否发现自己编写了不寻常的迭代器