Python 3.2 在csv.DictReader中跳过一行
我该如何在使用DictReader读取CSV文件时跳过一行记录?
代码:
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'
3 个回答
6
在Python 2中,使用next()
这个方法被认为是个错误,应该用__next__()
。
现在,next(obj)
会调用obj.__next__()
,就像调用str
、len
等内置函数一样,这样才是正确的。
通常情况下,你不会直接调用obj.__next__()
,就像你不会直接调用obj.__str__()
来获取对象的字符串表示一样。
如果你在写一些不常见的迭代器时,知道这些会很有用。
7
从Python 2.6开始,你应该用next(foo)来代替foo.next()。
28
你可以用 next(reader)
来代替。