将时间记录到文本文件中

时间:2014-10-14 05:29:00

标签: python

我正在尝试测试我的电池在我的覆盆子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文件中没有保存任何内容。任何和所有的帮助将不胜感激。

感谢您的时间

3 个答案:

答案 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'

标志说明:

  • -F打印完整的日期和时间 - 这在您的情况下很方便,因为这是您想知道的。
  • -R禁止输出中的主机名。你不需要那样。
  • -x显示关闭运行级别更改 - 现在那是您想知道的内容。

最后,grep语句会过滤掉启动或关闭消息。