2016-07-07 5 views
0

私はここにCSVモジュールでPythonのドキュメントを読んでされています:https://docs.python.org/2/library/csv.htmlPython CSV Reader:No Get Line Function?

そして、私はそれが現在読んでいる行の数を返すために、リーダー・オブジェクトに対してどのような方法に言及していないことに気づいた、またはそれはそれをイテレーション現在のところです。これは広く必要とされる機能のようだ。だから、私はこのことをどうやってできるのだろうと思っています:

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を使用できるようにリーダーオブジェクトは、イテレータです:

for line_number, row in enumerate(reader, 2): 
    # line number starts at 2 

enumerate ISN」:

reader = csv.DictReader(readFile) 
for line_number, row in enumerate(reader): 
    # some code 

enumerateも、カスタム開始インデックスを指定することができますtは、csvモジュールのreaderオブジェクトに限定されていますが、一般的にiterablesとiteratorsで動作します。