Python 在txt文件中存储x的最后n个值
如果我有一个程序要求输入用户名和分数,打开一个.txt文件,搜索文件中的用户名,如:Python 在txt文件中存储x的最后n个值,python,file,input,Python,File,Input,如果我有一个程序要求输入用户名和分数,打开一个.txt文件,搜索文件中的用户名,如: for x in f.readlines(): if name in x.strip(): #etc 如果找到该名称,它必须编辑该行并添加新分数,但它必须只存储x个分数,比如最后4个分数。因此,如果已经存储了4个分数,则必须删除最旧的分数,以便只保留最新的4个分数 如果找不到该名称,则它只是文件末尾的一个简单附加 如何实现这一点?我将读取文件并将其放入某种数据结构(如字典)中(解析),
for x in f.readlines():
if name in x.strip():
#etc
如果找到该名称,它必须编辑该行并添加新分数,但它必须只存储x个分数,比如最后4个分数。因此,如果已经存储了4个分数,则必须删除最旧的分数,以便只保留最新的4个分数
如果找不到该名称,则它只是文件末尾的一个简单附加
如何实现这一点?我将读取文件并将其放入某种数据结构(如字典)中(解析),然后更新dict中的值,然后将其写回。这可能不是最有效的方式,但却是我最常用的方式。首先,你需要弄清楚行的格式。你将如何区分名字和分数?我用的是逗号
for line in f: # readlines() is not necessary here
if name in line:
name, s = line.split(',', 1)
scores = s.split(',')
if len(scores) > 4:
del scores[0] # remove the oldest one
scores.append(the_new_score)
new_line = "%s,%s" % (name, ','.join(scores))
用新的线做点什么
(注意:这只是一个如何实现这一点的非常快速的想法。这既不会就地更新文件,也不会在任何地方写出结果。这是留给读者的练习,除非您在这一部分也需要帮助)非常优雅的解决方案。别担心,我写文件没问题。文件是什么样子的?