Python在文本文件中附加新的浮点值并删除旧的浮点值

2024-10-05 21:55:55 发布

您现在位置:Python中文网/ 问答频道 /正文

以上重复通知为虚假。我不想只附加到一个文本文件。我还想删除文本文件中最旧的部分,以便只保留最新的数据。你知道吗

我有一个文本文件,其中有一些类似于下面的信息。你知道吗

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])+', ')

Tags: 数据方法txt信息lenetc数字open
1条回答
网友
1楼 · 发布于 2024-10-05 21:55:55

您应该以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元素检查你在做什么,因为这对我来说没有多大意义。在我看来,根据您运行此代码段的方式,您可能会得到重复的代码段。你知道吗

相关问题 更多 >