我试图弄清楚为什么这段代码返回超出范围错误的字符串索引。我正在做一个更大的项目,并试图将其分解为模块。文本文件的代码和内容如下。任何帮助将非常感激。谢谢! 肖恩
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
答案 0 :(得分:0)
添加附加条件,即Map<String, String>
不能大于字符串的长度:
properties
答案 1 :(得分:0)
正在发生这种情况,因为文件的最后一行没有\n
,所以第二个循环不会在nicholas,30
的结尾处停止,因为那里没有换行符,并尝试继续在循环内index
递增之后寻找下一个位置,而该位置不存在,因此在尝试进行while line[index]....
时会抛出错误。
如果文件末尾有一个空行,则\n
后有一个nicholas,30
,则错误将在下一行发生。这就是为什么检查该索引绝不应该大于行长的原因,因为@ roddar92建议您对其进行修复。但是我想您将需要在两个循环中都进行检入。