Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在txt文件中存储x的最后n个值_Python_File_Input - Fatal编程技术网

Python 在txt文件中存储x的最后n个值

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个分数 如果找不到该名称,则它只是文件末尾的一个简单附加 如何实现这一点?我将读取文件并将其放入某种数据结构(如字典)中(解析),

如果我有一个程序要求输入用户名和分数,打开一个.txt文件,搜索文件中的用户名,如:

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))
用新的线做点什么


(注意:这只是一个如何实现这一点的非常快速的想法。这既不会就地更新文件,也不会在任何地方写出结果。这是留给读者的练习,除非您在这一部分也需要帮助)

非常优雅的解决方案。别担心,我写文件没问题。文件是什么样子的?