我有一个运行很长时间(通常几个小时)的python脚本。在执行期间,它有一个超时,可能会被用户杀死。我想将其输出转储到日志文件中,但是无论脚本如何终止(超时,sigkill或程序结束),我都想确保日志文件已关闭
这就是我现在拥有的:
import sys
import signal
def sig_handler...
def handle_timeout...
signal.signal(signal.SIGTERM,sig_handler)
signal.signal(signal.SIGINT,sig_handler)
signal.signal(signal.SIGALRM,handle_timeout)
logfile_out = open('logfile.txt','a')
sys.stdout=logfile_out
...
logfile_out.close
如果我在那些信号处理程序中关闭了文件对象,并且脚本完成后,我是否涵盖了所有情况或是否错过了任何事情?有更好的方法吗?
谢谢