Python CSV阅读器:没有获取线功能?

时间:2016-07-07 17:23:58

标签: python csv iterator generator

我一直在这里阅读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

如果不可能,那么为什么会这样。

1 个答案:

答案 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对象,而且通常用于迭代和迭代器。