¿Cómo agrego una nueva fila de datos a un archivo CSV con Python?

Tengo un archivo CSV llamado studentDetailsCopy y necesito agregar una fila de datos al final, pero en el momento en que se agrega al final de la última fila para que se vea así: a y 28 en la El final del correo electrónico son los datos que deben agregarse debajo de él (línea 28)

Archivo CSV

Este es mi código que está haciendo esto:

 newStudentAttributes = ([str(lastRowInt), newSurname, newForename, newDoB, newAddress, newHomePhoneNumber, newGender, newTutorGroup, newSchoolEmail]) with open('studentDetailsCopy.csv', 'a') as studentDetailsCSV: writer = csv.writer(studentDetailsCSV, dialect='excel') writer.writerow(newStudentAttributes) 

Cuando use abrir (archivo, “a”) python siempre se abrirá hasta el final del archivo. Como su archivo CSV no tiene una nueva línea vacía “\ r \ n” en la parte inferior, es decir, la última línea es “26, …”, el escritor csv se agrega a esa línea. En este bucle, debe leer la última línea usando abrir (archivo, “a +”), verifique que esté vacío. Si no está vacío, haga writer.writerow () para insertar una nueva línea.

 with open('studentDetailsCopy.csv', 'a+') as studentDetailsCSV: # Go to the last row, jump before the EOF terminator studentDetailsCSV.seek(-2,2) line = studentDetailsCSV.readline() writer = csv.writer(studentDetailsCSV, dialect='excel') #If the line is more than just a terminator, insert a newline. if line != "\r\n": writer.writerow("") writer.writerow(newStudentAttributes) 

newStudentAttributes vez intente eliminar los corchetes de newStudentAttributes ?

 newStudentAttributes = [ str(lastRowInt), newSurname, newForename, newDoB, newAddress, newHomePhoneNumber, newGender, newTutorGroup, newSchoolEmail ] with open('studentDetailsCopy.csv', 'a') as studentDetailsCSV: writer = csv.writer(studentDetailsCSV, dialect='excel') writer.writerow(newStudentAttributes)