2013-10-06 3 views
3

В моем коде я хотел бы иметь возможность распечатать номер строки, если во время обработки обнаружена ошибка (вызвана другим фрагментом кода), но у меня возникают проблемы с этим используя объект line_num. Вот мой код для .csv, который 4 строки длиной:Python - Understaning CSV Module и объект line_num

with open(inFile, 'U') as inFH: 
    csvReader = csv.reader(inFH, delimiter = ',') 
    header = csvReader.__next__() 
    lineNum = csvReader.line_num 

    for row in csvReader: 
     print(lineNum) 

, когда я выполняю этот код, я вижу это в консоли:

1 
1 
1 
1 

Я ожидаю, что я хотел бы видеть:

1 
2 
3 
4 

Это выглядит почти как код печатает индекс, а не номер строки ...

ответ

10

lineNum не изменяется после первого задания. Печать внутри цикла повторяет одно и то же значение.

Почему вы не печатаете csvReader.line_num следующим образом?

for row in csvReader: 
    print(csvReader.line_num) 
+0

Большое спасибо, что сделал трюк и ясное объяснение! – Seth

Смежные вопросы