2016-07-07 43 views
0

我一直在阅读Python文档的CSV模块在这里:https://docs.python.org/2/library/csv.htmlPython CSV阅读器:没有获取线路功能?

而且我注意到,它并没有提到任何方式为读者对象返回它当前正在读取的行数,或迭代它目前在。这似乎是一个广泛需要的功能。所以,我想知道如何做到这一点:

reader = csv.DictReader(readFile) 
    for row in reader: 
     # do something 
     # now want to find the line number that row corresponds to 

或者,如果这是不可能的,为什么是这样的情况。

+1

http://stackoverflow.com/questions/522563/accessing-the-index-in-python-for-loops –

回答

5

读者对象是一个迭代器,让您可以随时使用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 ISN” t仅限于csv模块的reader对象,但通常与迭代器和迭代器一起工作。