我的程序是一個數學測驗。用戶完成10個問題,然後獲得分數。然後需要將該分數附加到文本文件。導入數據到文本文件
if classs == "1":
text_file = open("Class1.txt", "r")
data = text_file.read()
text_file.close()
if name in data:
searchName(name, score)
else:
text_file = open("newFileName.txt","a")
text_file.write(str(name) +","+ str(score)+ "\n")
text_file.close()
questions = 0
score = 0
break
該代碼塊將用戶評分和名稱附加到文本文件中。
但是我需要做到這一點,如果用戶已經參加了測驗,分數會附加到該名稱上,而不是創建新的值。應該附加分數,直到一個名稱有三個分數,然後如果再次進行測驗,它將刪除第一個分數並追加最新的分數。
def searchName(name, score):
with open("Class1.txt", 'r') as f:
data = f.read().split('\n')
print(data)
with open("newFileName.txt", 'w') as newFile:
for line in data:
if name in line:
line+=(',') + str(score) + (',')
newFile.write(line + '\n')
但它只保存1分並在測驗再次進行後將其刪除。
Dion,0
Jarrod,1
Jake Bing,6
Charlie,2,5
恢復到
Dion,0
Jarrod,1
Jake Bing,6,5
Charlie,2,
如果另一個用戶使用測驗(傑克兵)
您不能附加到文件中間的行。您需要保存該行,將其刪除,追加新數據,然後將其寫回 –