为什么我的代码中不断出现列表索引超出范围错误?

时间:2019-12-10 18:42:07

标签: python

这是我的csv文件:

dan, 12pts

这是代码,但我的代码中出现索引超出范围错误的情况吗?我不明白这是怎么回事:

import csv

with open('scoreboard.csv','r') as csv_file:
   csv_reader = csv.reader(csv_file)

   for line in csv_reader:
       print(line[1])

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

这很可能是由于文件中的空白行,因此没有第二个元素。要对此进行诊断,请通过一些额外的报告来检测代码:

import csv

with open('scoreboard.csv','r') as csv_file:
   csv_reader = csv.reader(csv_file)

   for line in csv_reader:
       print(line)
       print(len(line))
       print(line[1])

这将告诉您发生了什么问题,恰好在发生之前

答案 1 :(得分:0)

csv文件中第一行之后是空白行。

通过在第一行之后添加空白行来重现错误 (注意:“ <”字符不是csv文件的一部分):

< dan, 12pts
<

我们当然会收到错误消息:

import csv

with open('scoreboard.txt','r') as csv_file:
   csv_reader = csv.reader(csv_file)

   for line in csv_reader:
       print(line[1])

退出:

print(line[1])

IndexError: list index out of range

乍一看,csv文件中的空白行可以很好地隐藏pritty,但是在我们删除它(或它们!)之后:

< dan, 12pts

退出:

12pts