Я поставлена задача войти студенческие оценки для викторины по математикеПроблем пишущих вывода в файл CSV
Ниже моя задача:
Учитель хочет, чтобы использовать результаты от студентов, принимающих эти викторин запишите их производительность. Система должна хранить> последние три оценки для каждого учащегося.
Каждый раз, когда я запускаю мой код, данные не добавляются в файл CSV, а также «состояние», текстовый файл остается на 0, так что даже если данные добавляются баллы не будут обновляться, а вместо этого добавляются к строке
Ниже мой код:
import csv
import os
name = input("enter your name: ")
classroom_num = input("enter your classroom number: ")
score = 5
print ("%s, you scored %d/10 questions correctly"%(name,score))
status = open ("state.txt","w") #Every time program is run +1 is added, so that column 1-3 are updated
with open ("state.txt","r") as f:
state = f.read()
if os.stat("state.txt").st_size == 0:
status.write ("0")
state_ints = [ int(x) for x in state.split() ] #converts into int
addone = 1
if state_ints == 3: #If program is run more than 3 times the value in text file reset to 0
state_ints = 0
status.write (state_ints)
with open("Classroom {}.csv".format(classroom_num),"a+") as f:
rows = csv.reader(f)
for row in rows:
if row in rows in row[0] != (name) in row: #Checks if name exists in file (if so name isn't appended to column)
state_ints.append(addone) #Adds one everytime program is run so that score can be replaced for row 1-3
status.write (state_ints)
name_row = (row [0])
name_row.append(name)
score_row = (row (state_ints))
score_row.append(score)
else:
state_ints.append(addone)
status.write (state_ints)
score_row = (row [state_ints])
score_row.append(score)
status.close()