2013-10-06 53 views
3

在我的代码中,如果在处理过程中发现错误(在另一段代码中调用),我希望能够打印行号,但是我在执行此操作时遇到问题使用line_num对象。这里是我的一个.csv是4行长码:Python - 下载CSV模块和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

第一次分配后,不会更改。在循环内打印它会反复打印相同的值。

为什么不打印csvReader.line_num如下?

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

非常感谢,这做了诡计和明确的解释! – Seth