Python - 在文本文件中添加新的浮点数并删除旧的浮点数

Python - Appending new floats and deleting old floats in a text file

上述重复通知是错误的。我不只是想追加到一个文本文件。我还想删除文本文件中最旧的部分,以便只保留最新的数据。

我有一个文本文件,其中包含一些类似于以下的信息。

14.614, 14.624, 14.512, 14.615, etc.

每十分钟添加一个数字。我想要单独的文本文件来保存过去 365 天、180 天、90 天、60 天、30 天、14 天、7 天和 2 天的数字。执行每个操作的代码都是相同的,只是数字不同。这是我尝试过的方法,但它会将每个新数字添加到列表的前面,而不是结尾。

ff = open('AvailableTickets.txt', 'r').read()
ff2 = ff
ff = ff.replace(',', '')
ff = ff.split()
ff = map(float, ff)
if len(ff) < 10:
    ff3 = open('TestTickets.txt', 'r+')
    ff3.write(str(ff2))
else:
        ff3 = open('TestTickets.txt', 'r+')
        for x in range(0, 10):
            ff3.write(str(ff[len(ff)-x])+', ')

您应该在 append 模式下打开文件。你应该更好:

  • 使用 with 语句正确关闭文件并在写入后刷新它,
  • 尽量避免不必要的变量阴影(ffff2),
  • 使用显示变量包含内容的名称,最后,
  • 使用索引运算符,而不是范围和手动索引处理:

with open('AvailableTickets.txt', 'r') as fin:
    tickets_raw = fin.read()
    tickets_list = tickets_raw.split(', ')
    with open('TestTickets.txt', 'a') as f:
        if len(tickets_list) < 10:
            f.write(tickets_raw)
        else:
            f.write(', '.join(tickets_list[-10:]))

然后我真的想知道你的逻辑是什么 10 元素检查你在做什么,因为它对我来说没有多大意义。在我看来,根据您 运行 这段代码的方式,您可能会得到重复项。