尝试从文本文件读取数据时,字符串索引超出范围错误

时间:2020-11-02 20:11:16

标签: string indexing

我试图弄清楚为什么这段代码返回超出范围错误的字符串索引。我正在做一个更大的项目,并试图将其分解为模块。文本文件的代码和内容如下。任何帮助将非常感激。谢谢! 肖恩

file='figures.txt'
figures_file=open(file,'r')
leader_names_list=[]
leader_scores_list=[]
for line in figures_file:

    name=''
    score=''
    index=0
    while (line[index] != ','):
        name=name+line[index]
        index=index+1
    index=index+1
    while line[index] != '\n':
        score=score+line[index]
        index=index+1
    leader_names_list.append(name)
    leader_scores_list.append(score)

print (leader_names_list)
print (leader_scores_list)
figures_file.close()

文本文件内容 肖恩,50 维罗尼卡40 尼古拉斯30

2 个答案:

答案 0 :(得分:0)

添加附加条件,即Map<String, String>不能大于字符串的长度:

properties

答案 1 :(得分:0)

正在发生这种情况,因为文件的最后一行没有\n,所以第二个循环不会在nicholas,30的结尾处停止,因为那里没有换行符,并尝试继续在循环内index递增之后寻找下一个位置,而该位置不存在,因此在尝试进行while line[index]....时会抛出错误。

如果文件末尾有一个空行,则\n后有一个nicholas,30,则错误将在下一行发生。这就是为什么检查该索引绝不应该大于行长的原因,因为@ roddar92建议您对其进行修复。但是我想您将需要在两个循环中都进行检入。

相关问题