【发布时间】:2018-10-27 09:39:07
【问题描述】:
我正在运行一个 python 脚本,由于某种原因被杀死,因此没有打印标准输出。我知道我可以使用sys.stdout.flush() 获得缓冲的标准输出。但是,由于我不知道脚本何时被杀死,我可能会错过上次刷新和实际进程结束之间的时间。例如,下面的代码是否在 60 秒睡眠结束前只保存“测试 1”。如果我在此之前终止程序,我的日志文件将只包含“test 1”打印。
import sys,time
sys.stdout = open('log', 'w')
print("test 1")
sys.stdout.flush()
print("test 2")
time.sleep(60)
如何在脚本被杀死之前捕获最后一个标准输出?即使我在 60 年代睡眠结束之前杀死脚本,如何获得“测试 2”打印?
【问题讨论】:
-
你的程序是如何被杀死的?通过
KeyboardInterrupt?通过SystemExit?还是别的什么? -
我不知道。我让它运行,由于某种原因,它被杀死了。而且不是第一次了。