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 语句正确关闭文件并在写入后刷新它,
- 尽量避免不必要的变量阴影(
ff
和 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:]))
然后我真的想知道你的逻辑是什么 10
元素检查你在做什么,因为它对我来说没有多大意义。在我看来,根据您 运行 这段代码的方式,您可能会得到重复项。
上述重复通知是错误的。我不只是想追加到一个文本文件。我还想删除文本文件中最旧的部分,以便只保留最新的数据。
我有一个文本文件,其中包含一些类似于以下的信息。
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 语句正确关闭文件并在写入后刷新它,
- 尽量避免不必要的变量阴影(
ff
和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:]))
然后我真的想知道你的逻辑是什么 10
元素检查你在做什么,因为它对我来说没有多大意义。在我看来,根据您 运行 这段代码的方式,您可能会得到重复项。