【发布时间】:2015-11-30 09:21:20
【问题描述】:
我的程序是数学测验。用户完成 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,
如果其他用户使用测验 (Jake Bing)
【问题讨论】:
-
您不能追加到文件中间的行。您需要保存该行,将其删除,附加新数据,然后将其写回
标签: python