Python - Understaning CSV Module和line_num对象

Set*_*eth 4 python csv module python-3.x python-3.3

在我的代码中,如果在处理期间发现错误(在另一段代码中调用),我希望能够打印行号,但是我在使用该line_num对象时遇到了麻烦.这是我的4行长的.csv代码:

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

    for row in csvReader:
        print(lineNum)
Run Code Online (Sandbox Code Playgroud)

当我执行这段代码时,我在控制台中看到了这一点:

1
1
1
1
Run Code Online (Sandbox Code Playgroud)

我的期望是我会看到:

1
2
3
4
Run Code Online (Sandbox Code Playgroud)

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

fal*_*tru 12

lineNum第一次分配后不会更改.在内部循环打印,重复打印相同的值.

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

for row in csvReader:
    print(csvReader.line_num)
Run Code Online (Sandbox Code Playgroud)