我正在做一个小的视觉项目,它将由我的鼠标移动产生。
为了做到这一点,我从我的电脑相当快地记录我的鼠标数据(可能高达20日志/秒)。
我只是一次一行地将我的数据附加到.txt
。
目前,我使用以下方法添加到我的数据文件:
import time
file_object = open('./logs/test.txt', 'a+', encoding="utf-8")
while True:
file_object.write(f"{time.time()}n")
time.sleep(1)
file_object.close()
在这种情况下,我知道file_object
不会关闭并保存,这是我的观点。
如果我的脚本没有正确退出,如果我要关闭我的电脑,或者我用完电源。
日志不会被保存,我已经丢失了所有的数据。
我知道附加到文档的with
方式应该节省硬关机,但是我使用了很多函数和其他with
语句,从我附加到.txt
文件的地方,我看不到我如何实现它。
换句话说,我真的在寻找一种检测硬关机的方法,并在计算机死机之前调用file_object.close()
来保存文档。
当然还有其他聪明的选择。
开导我吧:)
感谢您的帮助
我只是关闭并重新打开每个日志条目的文件。它应该能够处理3个日志/秒。
import time
while True:
file_object = open('./logs/test.txt', 'a+', encoding="utf-8")
file_object.write(f"{time.time()}n")
file_object.close()
time.sleep(1)
如果使用的是Windows,可以使用Win32Api函数。更好的描述如下:
使用python检测关机事件
也可以使用
进口时间
而真实的:
with open('./logs/test.txt', 'a+', encoding="utf-8") as file_object:
file_object.write(f"{time.time()}n")
time.sleep(1)