【发布时间】:2018-12-14 17:38:15
【问题描述】:
我正在使用 python 收集温度数据,但只想存储最近 24 小时的数据。
我目前正在用这个生成我的 .csv 文件
while True:
tempC = mcp.temperature
tempF = tempC * 9 / 5 + 32
timestamp = datetime.datetime.now().strftime("%y-%m-%d %H:%M ")
f = open("24hr.csv", "a")
f.write(timestamp)
f.write(',{}'.format(tempF))
f.write("\n")
f.close()
.csv 看起来像这样
这个输出的 .csv 看起来像这样
18-12-13 10:58 ,44.7125
18-12-13 11:03 ,44.6
18-12-13 11:08 ,44.6
18-12-13 11:13 ,44.4875
18-12-13 11:18 ,44.6
18-12-13 11:23 ,44.4875
18-12-13 11:28 ,44.7125
我不想翻车,只保留最近 24 小时的数据。由于我每 5 分钟采样一次数据,因此 24 小时后我的 CSV 文件中应该有 144 行。所以如果我使用 readlines() 我可以知道我有多少行但是我如何摆脱任何超过 24 小时的行?这是我想出的,显然行不通。有什么建议吗?
f = open("24hr.csv","r")
lines = f.readlines()
f.close()
if lines => 144:
f = open("24hr.csv","w")
for line in lines:
if line <= "timestamp"+","+"tempF"+\n":
f.write(line)
f.close()
【问题讨论】:
-
请详细说明“显然不起作用”:它与您想要的有什么不同?
-
你能给我们看一个文件样本吗?
-
我认为你的数学计算有误,24 小时每 5 分钟一共 288 行。为您编写解决方案,坚持下去
-
是的,你说得对,应该是 288 而不是 144
标签: python timestamp readlines