问题描述
我正在做一个小型的视觉项目,该项目将通过我的鼠标移动来生成。
为了实现这一点,我正在相当快地从我的电脑记录我的鼠标数据(可能高达 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()
来保存文档。
或者当然还有其他聪明的选择。
启发我:)
感谢您的帮助
解决方法
Id 只需关闭并重新打开每个日志条目上的文件。它应该能够处理 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 功能。对此进行更好的描述:
Detect shutdown event with python
,你也可以使用这个
导入时间
虽然为真:
with open('./logs/test.txt',encoding="utf-8") as file_object:
file_object.write(f"{time.time()}\n")
time.sleep(1)