当我最初放入代码时,代码就工作了,但后来我添加了更多代码,当我试图加载cvs文件时,它开始在索引0上给我这个索引错误。我试图将最左边的值放在第一个列表中,将csv文件中每行的最右边的值放进第二个列表中。当我手动输入值时它工作,但当我从程序输入值时不工作
import csv
list1 = []
list2 = []
with open('file.csv') as f:
f.readline()
csvin = csv.reader(f)
for row in csvin:
list1.append(row[0])
list2.append(row[1])
header1,header2
l1value,l2value
l1value,l2value
Error message:
list1.append(row[0])
IndexError: list index out of range
您发布的代码运行良好。使用readline()
功能跳过标题行是可以的。
您的csv文件似乎包含导致错误消息的空行,因为csv.reader
将空行作为空列表返回。
with open(filename) as f:
f.readline()
csvin = csv.reader(f)
for row in csvin:
print(row)
# returns the following rows:
# ['1', '3']
# ['2', '4']
# []
为了避免这种情况,您可以检查csv文件不包含空行,也可以通过检查行添加if condition
来检查空行:
l, r = [], []
with open(filename) as f:
f.readline()
csvin = csv.reader(f)
for row in csvin:
if row:
l.append(row[0])
r.append(row[1])