当我的文本文件明显超过1行时,为什么会发生此错误?

2024-09-19 23:39:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的初学者。我已经检查了我的文本文件,肯定有超过1行,所以我不明白为什么它给我的错误

---> 11     Coachid.append(split[1].rstrip())
  

IndexError: list index out of range

Tags: ofindex错误rangeoutlistsplit文本文件
2条回答

问题在于线路:

split=line.split(",")
Coachname.append(split[0].rstrip())
Coachid.append(split[1].rstrip())

第一行假设line至少包含一个逗号,因此在方法split被称为变量split之后,将是一个长度至少为2的列表。但是如果line不包含逗号,那么split的长度将为1,Coachid.append(split[1].rstrip())将生成您得到的错误。您需要添加一些长度为split的条件测试

更新

您的代码应该如下所示(假设正确的操作是将空字符串附加到Coachid列表(如果输入中缺少该字符串):

split=line.split(",")
split_length = len(split)
Coachname.append(split[0].rstrip())
# append '' if split_length is less than 2:
Coachid.append('' if split_length < 2 else split[1].rstrip())
etc. for the other fields

如果要在文件的行上循环,必须使用

for line in f.readlines()
    ...

相关问题 更多 >