从CSV电子表格中读取并获得一些意外的空列表



所以这是代码 -

import csv
with open('csv_example_files.csv') as csvfile:
readCSV = csv.reader(csvfile , delimiter = ',')
print(readCSV)
for row in readCSV:
print(row)

输出为:

<_csv.reader object at 0x0000024D3DC42388>
['1/2/2014', '4', 'red']
['1/2/2014', '1', 'kv']
['1/2/2014', '1', 'jblock']
['1/3/2018', '1', 'kv']
['1/5/2114', '1', 'kv']
[]
[]
[]

我没想到最后 3 个空列表我不知道为什么会发生,所以请帮助我。我只是一个初学者,当我遵循教程系列时,我被困在这里。

您的 CSV 文件很可能以 3 个换行符结尾。通过模块读取时,这些会导致列表csv空。

由于CSV文件包含空行,因此您将获得这些额外的行。您可以编辑文件并删除空白行,也可以添加测试以确保该行包含正确数量的单元格,例如3

import csv
with open('csv_example_files.csv', newline='') as f_input:
csv_input = csv.reader(f_input)
for row in csv_input:
if len(row) == 3:
print(row)

这应该会给你以下输出:

['1/2/2014', '4', 'red']
['1/2/2014', '1', 'kv']
['1/2/2014', '1', 'jblock']
['1/3/2018', '1', 'kv']
['1/5/2114', '1', 'kv']

注意:CSV 文件的分隔符已经是,。使用Python 3.x时,您还应该添加newline=''

尝试添加csvfile.readline()

with open("csv_example_files.csv") as csvfile:
csvfile.readline()
readCSV = csv.reader(csvfile , delimiter = ',')
print(readCSV)
for row in readCSV:
print(row)

查看此答案

最新更新