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

时间:2015-03-29 18:45:25

标签: python file text append

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

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

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

1 个答案:

答案 0 :(得分:2)

您应该以{{1​​}}模式打开文件。你应该更好:

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

ff2

然后我真的想知道你的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:])) 元素检查你正在做什么的逻辑是什么,因为它对我来说没有多大意义。在我看来,根据您运行此代码段的方式,您可能会获得重复项。