我正在尝试测试我的电池在我的覆盆子pi上运行了多长时间。我需要做的就是运行一个while循环直到电池耗尽。但是,我需要记录它开始和结束的时间。我想将数据保存到txt文件中。我目前的代码如下:
import time
file = open('time','w')
x=1
while x==1:
from datetime import datetime
now = datetime.now()
file.write(now)
file.close()
如果我只是在python中打印结果,我将得到一个结果,并且当前代码生成一个名为' file'但是txt文件中没有保存任何内容。任何和所有的帮助将不胜感激。
感谢您的时间
答案 0 :(得分:1)
你有一个无限循环,它只是一遍又一遍得到当前时间......这个循环不会破坏(即使你的电池死了......)。
在某些时候,您需要break
循环或while
中的条件需要变为False
。 e.g。
from datetime import datetime
while x == 1:
now = datetime.now()
break
或
from datetime import datetime
while x == 1:
now = datetime.now()
x += 1
一般来说,您需要查看系统日志,了解计算机何时启动以及何时因电池电量不足而决定关闭...
答案 1 :(得分:1)
我建议使用如下所示的代码:
import time
import datetime.datetime as dt
initTime = dt.now()
while True:
with open('time.txt', 'a') as f:
f.write( str(dt.now() - initTime) )
time.sleep(1)
这两个不同之处。首先,您始终以append
模式打开文件。这样,每次都会刷新文件。接下来,它将始终使用经过的时间量更新文件。所以,即使你的树莓派关闭,你应该能够恢复它。
答案 2 :(得分:0)
无需自己记录这些时间。 Pi(以及几乎所有Linux发行版)将这些事件写入/var/log/wtmp
文件(更多关于该文件here)。 last
命令可以检索这些事件(另请参阅the manual entry for last)。请尝试以下方法:
last -FRx | grep -e 'boot\|shutdown'
标志说明:
最后,grep
语句会过滤掉启动或关闭消息。