如果要同时更新三个分数,则需要覆盖而不是追加:open("groupA.txt","w")
要保持上一次运行的最后两次,并写出最新的单次得分:
^{pr2}$
可能更容易pickle或json一个dict并保留一个分数列表,用最新的分数替换最后一个分数。在import pickle
from collections import defaultdict
with open('scores.pickle', 'ab') as f:
try:
scores = pickle.load(f)
except ValueError:
scores = defaultdict(list)
# do your logic replacing last score for each name or adding names
with open('scores.pickle', 'wb') as f:
# pickle updated dict
pickle.dump(f,scores)
如果您想要人类可读的格式使用json.dump和普通dict,可以使用dict.setdefault代替使用defaultdict的功能:import json
with open('scores.json', 'a') as f:
try:
scores = json.load(f)
except ValueError:
scores = {}
# add user if not already in the dict with a list as a value
scores.setdefault(name,[])
# just append the latest score making sure when you have three to relace the last
scores[name].append(whatever)
# do your logic replacing last score for each name or adding names
with open('scores.json', 'w') as f:
json.dump(scores,f)