Python文本和行读取错误

时间:2015-11-26 11:35:07

标签: python python-3.x coding-style

我目前正在攻读GCSE学生的计算机科学。我和我的老师正在努力完成任务3.任务的要求是: 然后需要询问用户他们想要查看的班级 在此之后,它将需要询问他们是否希望按字母顺序查看文件,特定班级的高分或他们是否想要查看所选班级中每个学生的平均值

import csv
class_a = open('classA.txt')

csv_a = csv.reader(class_a)

for row in csv_a:
    row[2] = int(row[2])
print(row[2])

当我运行程序时,我收到此错误

 Traceback (most recent call last):
File "C:\Users\Roo\Desktop\Python\Class\Test.py", line 7, in <module>
row[1]= int(row[1])
IndexError: list index out of range

我在python中运行时的代码告诉我第13行有一个问题

"index out of range"

我的文字文件包含:

Roo,2,3,3  
Roo,4,4,5  
Alfie,5,8,2    
Alfie,2,8,5    
Bob,2,8,6    
Connor,3,5,9    
Connor,5,3,3  
Ellis,5,6,2  
George,5,4,1   
Ellis,4,9,3   
Nathan,5,6,5   
George,5,5,6    
Alfie,9,4,7    
George,4,7,9    
Celis,4,5,4    
Leo,3,2,3    
Celis,6,1,2  
Leo,5,2,1 

当我运行程序代码时,row[2] = int(row[2])告诉我它超出了范围?有解决方案吗

请保持基本,我目前是python的新手,并且不了解所有技术术语

1 个答案:

答案 0 :(得分:0)

你可能有一个空行 classA.txt的结尾。

使用

for row in csv_a:
    if row:              # or better if len(row)==4:
          row[2] = int(row[2])
          print(row[2])

之前检查该行是否为空 你访问第二/第三个条目。