2015-12-20 3 views
1

Я создал викторину для студентов, чтобы принять участие, чтобы проверить их арифметические навыки. Я хочу написать список студентов и их результаты в файл csv. Я изо всех сил пытаюсь написать файл, и хотя мне удалось, файл excel не содержит данных. В нем указано «Оценка для []: []». Очень жаль неэффективного кода, но любая помощь поможет в решении этой проблемы.Написать список CSV-файла в Python

Я создал 2 пустых списка и переменную.

Student = [] 
Score = [] 
QuizTaken = 0 

Это определяет, когда добавлять баллы в список.

def QuizTaken(): #the amount of quizzes taken by student 

    while QuizTaken <= 3: 

     userName, ClassName = Introduction() #used to input name and class using raw_input 
     score = Quiz() 

     Student.append(userName) #student's inputted name is appended to list 
     Score.append(score) #student's final score is appended to list 

QuizTaken() 

Этот код записывает список в файл в виде строки, однако я думаю, что моя проблема лежит где-то здесь, но я не могу найти его.

def WriteToFile(): 

    userName, ClassName = Introduction() 
    score = Quiz() 

    print "" 

    if ClassName == "10x1": 
     print "Creating a text file for your teacher..." 
     fileWrite = open("10x1 Class Score.csv", "a+") 
     fileWrite.write("Score for ") 
     fileWrite.write(str(Student)) 
     fileWrite.write(" : ") 
     fileWrite.write(str(Score)) 
     fileWrite.write("\n") 
     fileWrite.close() 

Код должен написать имена и результаты приложенных в пустой список в файл CSV, с доступными для меня, чтобы просмотреть данные, но он не должен быть перезаписаны.

+0

Лучше использовать 'dict' для этой цели, в отличие от хранения его в двух разных списках. И вам нужно пройти курс обучения в основы python. Потому что вы неправильно поняли некоторые необходимые вещи. –

+0

у вас есть QuizTaken как функция и имя переменной. Вы также не увеличиваете свой счетчик (QuizTaken) в теле вашего цикла – lgd

ответ

1

Есть несколько проблем с вашим кодом: у вас есть QuizTaken как функция и имя переменной. Вы также не увеличиваете свой счетчик (QuizTaken) в теле вашего цикла. Вы можете использовать pandas (http://pandas.pydata.org/) для хранения данных в dataframe, а затем используйте pandas.DataFrame.to_csv(), чтобы записать его в файл.

Смежные вопросы