在我的代码中,如果在处理过程中发现错误(在另一段代码中调用),我希望能够打印行号,但是我在使用 line_num 对象执行此操作时遇到了问题。这是我的 .csv 代码,长度为 4 行:

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

看起来代码几乎是在打印索引而不是行号...

最佳答案

lineNum 在第一次赋值后不会改变。在循环内打印它重复打印相同的值。

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

for row in csvReader:
    print(csvReader.line_num)

关于Python - 了解 CSV 模块和 line_num 对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19210973/

10-12 21:48