2016-05-06 111 views
0

我有一个在python中打开的数据已经写入的txt文件。 我需要一种方法,只有3个部分的数据输入到这个文件中,然后才能删除最旧的数据位并用新数据替换。从Python中的txt文件中删除数据

例如: 一位老师要求我在python中构建一个系统,要求学生提出10个随机数学问题,在说出这个测验之前,学生必须输入他们的姓名和班级编号。

当测验完成后,他们的名字和分数必须写入某个文件,如果属于class1则属于class1.txt,属于class2的属于class2.txt等等。

该系统工作正常,但老师现在问我是否可能只有最近3次测验结果存储在相应的文件中。

非常感谢 一个GCSE的学生谁在砌体自己

+4

http://stackoverflow.com/help/how-to-ask – Abbas

+0

耻辱是不使用像Sqlite这样的数据库。文本文件“记录”(行)通常是可变长度的,所以尝试更新单个文件是不实际的。您需要每次都创建一个新文件,并按记录将记录复制到新文件中,随时随地进行更改(如放弃旧记录)。 – cdarke

+0

一个班级所有学生的三个最近的测验结果,还是每个学生最近的三个结果?你的文件看起来如何?你有每个学生一行吗?或者每个结果有一行,或者是什么? –

回答

0

您可以使用collections.deque这样的:

from collections import deque 

with open("file.txt", "r+") as f: 
    d = deque(f, 3) 
    d.append(new_score) # or use appendleft() 
    f.seek(0) 
    f.truncate() 
    f.writelines(d)