Python line_num打印行号只输出最后一个行号

Python line_num打印行号只输出最后一个行号,python,loops,csv,readline,Python,Loops,Csv,Readline,我试图打印.csv文件的行号,但它只输出所有行的最后一行号,以下是我的代码: import csv openfile = open('example_csv.csv') readcsv = csv.reader(openfile, delimiter = ',') list_csv_content = list(readcsv) for row in list_csv_content: print(f'Row #{readcsv.line_num} {row}') 输出如下: Row

我试图打印.csv文件的行号,但它只输出所有行的最后一行号,以下是我的代码:

import csv
openfile = open('example_csv.csv')
readcsv = csv.reader(openfile, delimiter = ',')
list_csv_content = list(readcsv)

for row in list_csv_content:
    print(f'Row #{readcsv.line_num} {row}')
输出如下:

Row #7 ['4/5/2015 13:34', 'Apples', '73']
Row #7 ['4/5/2015 3:41', 'Cherries', '85']
Row #7 ['4/6/2015 12:46', 'Pears', '14']
Row #7 ['4/8/2015 8:59', 'Oranges', '52']
Row #7 ['4/10/2015 2:07', 'Apples', '152']
Row #7 ['4/10/2015 18:10', 'Bananas', '23']
Row #7 ['4/10/2015 2:40', 'Strawberries', '98']

我做错了什么

line_num属性只是读卡器读取的总行数

但是,下面的代码应该可以工作,您可以
枚举
并获得实际行,以及该行的基于零的索引

导入csv
openfile=open('chart-images.csv')
readcsv=csv.reader(openfile,分隔符=',')
列表\u csv\u内容=列表(readcsv)
对于行数,枚举中的行(列出内容):
打印(行{line{u num}{Row})
  • 切换到枚举,如@vks所示

line\u num属性只是读卡器读取的总行数

但是,下面的代码应该可以工作,您可以
枚举
并获得实际行,以及该行的基于零的索引

导入csv
openfile=open('chart-images.csv')
readcsv=csv.reader(openfile,分隔符=',')
列表\u csv\u内容=列表(readcsv)
对于行数,枚举中的行(列出内容):
打印(行{line{u num}{Row})
  • 切换到枚举,如@vks所示

当您将
readcsv
保存到列表中时,您正在读取整个csv,这就是为什么行数指向最后一行的原因

您可以通过不将csv保存到列表中来解决此问题:

openfile = open('test.csv')
readcsv = csv.reader(openfile, delimiter = ',')

for line in readcsv:
    print(line, readcsv.line_num)
或者通过列举列表:

import csv
openfile = open('example_csv.csv')
readcsv = csv.reader(openfile, delimiter = ',')
list_csv_content = list(readcsv)

for i, row in enumerate(list_csv_content):
    print(f'Row #{i} {row}')

当您将
readcsv
保存到列表中时,您正在读取整个csv,这就是为什么行数指向最后一行的原因

您可以通过不将csv保存到列表中来解决此问题:

openfile = open('test.csv')
readcsv = csv.reader(openfile, delimiter = ',')

for line in readcsv:
    print(line, readcsv.line_num)
或者通过列举列表:

import csv
openfile = open('example_csv.csv')
readcsv = csv.reader(openfile, delimiter = ',')
list_csv_content = list(readcsv)

for i, row in enumerate(list_csv_content):
    print(f'Row #{i} {row}')

您还可以使用
enumerate
line_num
是从迭代器读取的行数,而不是您也可以使用
enumerate
line_num
的行数是从迭代器读取的行数,而不是总行数