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

时间:2015-07-18 22:52:23

标签: python file input

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

for x in f.readlines():
    if name in x.strip():
        #etc

如果找到该名称,则必须编辑该行并添加新分数,但它必须仅存储x个分数,比如最后4个分数。因此,如果已经存储了4个分数,则必须删除最旧的分数,以便仅保留最新的4个分数。

如果找不到名称,那么它只是一个简单的附加到文件末尾。

我将如何做到这一点?

2 个答案:

答案 0 :(得分:0)

我会读取文件并将其(解析)放入某种数据(例如字典)中,然后更新dict中的值,然后将其写回。它可能不是最有效的方式,但我最常用的方式。

答案 1 :(得分:0)

首先,您需要弄清楚线的格式。你如何分开名字和分数?我用逗号。

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))

用new_line做点什么。

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