ValueError: necesita más de 1 valor para descomprimir

Ok, sé que este tema se ha tratado varias veces, pero nada de lo que he visto me está ayudando. Recibo el error en el título y no estoy seguro de cómo corregirlo. Aquí está mi código:

def loadRecords(): f = open("stu.txt", "r") students = f.readlines() f.close() return students def addStudent(): n = input("Enter student's name: ") ex1 = input("Enter Exam 1 grade: ") ex2 = input("Enter Exam 2 grade: ") ex3 = input("Enter Exam 3 grade: ") return n + " " + ex1 + " " + ex2 + " " + ex3 + "\n" def displayStudents(students): for record in students: n, ex1, ex2, ex3 = record.split(",") ex1 = int(ex1) ex2 = int(ex2) ex3 = int(ex3) print("%-10s %5s %5s %5s" % (n, ex1, ex2, ex3)) def displayAvg(students): n = 1 for record in students: n, ex1, ex2, ex3 = record.split(",") ex1 = int(ex1) ex2 = int(ex2) ex3 = int(ex3) avg = (ex1 + ex2 + ex3) / 3 print("%-10s %5s" % (n, round(avg, 1))) n += 1 def saveRecords(students): f = open("stu.txt", "w") f.writelines(students) f.close def main(): students = loadRecords() while True: print(""" Program Options. 1.) Display all contacts 2.) Create new contact 3.) Display Averages 4.) Save and exit """) option = input("Enter 1, 2, or 3: ") print() if option == "1": displayStudents(students) elif option == "2": newRecord = addStudent() students.append(newRecord) elif option == "3": displayAvg(students) elif option == "4": saveRecords(students) break else: print("Not happening") main() 

Aquí está el error recibido:

 Traceback (most recent call last): File "C:/Python33/Program 4/pro4.py", line 65, in  main() File "C:/Python33/Program 4/pro4.py", line 53, in main displayStudents(students) File "C:/Python33/Program 4/pro4.py", line 16, in displayStudents n, ex1, ex2, ex3 = record.split(",") ValueError: need more than 1 value to unpack 

Aquí está el archivo que estoy usando, use el bloc de notas si desea ejecutar el código.

 sam wilson,98,80,73 sue green,92,98,74 sue adams,89,89,92 ron harris,90,87,100 linda tyler,76,72,88 dave smith,72,91,75 steve davis,88,92,84 

Probablemente tenga al menos una línea vacía en su archivo (generalmente la última línea); explícitamente prueba para eso:

 for record in students: if not record.strip(): continue n, ex1, ex2, ex3 = record.split(",") 

Es posible que desee consultar el módulo csv para leer los registros de sus estudiantes; todavía necesitaría omitir líneas vacías, pero la división de comas se maneja por usted.