【问题标题】:Removing data from txt file in Python在 Python 中从 txt 文件中删除数据
【发布时间】:2016-05-06 12:05:40
【问题描述】:

我在 python 中打开了一个 txt 文件,其中数据已写入。 在删除最旧的数据并用较新的数据替换之前,我需要一种仅将 3 部分数据输入到此文件中的方法。

例如: 一位老师让我用 Python 构建一个系统,该系统向学生提出 10 个随机数学问题,在进行此测验之前,学生必须输入他们的姓名和班级编号。

测验完成后,必须将他们的姓名和分数写入某个文件,如果他们属于第 1 类,则为 class1.txt,如果属于第 2 类,则为 class2.txt,依此类推。

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

非常感谢 一个自作自受的 GCSE 学生

【问题讨论】:

  • 很遗憾没有使用像 Sqlite 这样的数据库。文本文件“记录”(行)通常是可变长度的,因此尝试更新单个文件是不切实际的。您需要每次创建一个新文件并将记录逐个复制到新文件中,随时进行更改,例如丢弃旧记录。
  • 一个班级所有学生最近的三个测验结果,还是每个学生的三个最近的结果?你的文件看起来如何?每个学生有一条线吗?或者每个结果一行,还是什么?

标签: python database


【解决方案1】:

你可以像这样使用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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    相关资源
    最近更新 更多