我一直在这里阅读CSV模块上的Python文档:https://docs.python.org/2/library/csv.html
我注意到它没有提及任何方式让读者对象返回它当前正在读取的行数,或者它当前处于哪个迭代。这似乎是一个广泛需要的功能。所以,我想知道如何做到这一点:
reader = csv.DictReader(readFile)
for row in reader:
# do something
# now want to find the line number that row corresponds to
如果不可能,那么为什么会这样。
答案 0 :(得分:5)
reader对象是一个迭代器,因此您始终可以使用cursor.getInt(column_index) == 1
来获取行号:
enumerate
reader = csv.DictReader(readFile)
for line_number, row in enumerate(reader):
# some code
还允许您指定自定义起始索引:
enumerate
for line_number, row in enumerate(reader, 2):
# line number starts at 2
不仅限于enumerate
模块的reader
对象,而且通常用于迭代和迭代器。