如何在python中确保在脚本终止后关闭打开的文件

时间:2018-09-16 12:43:23

标签: python-3.x file operating-system

我有一个运行很长时间(通常几个小时)的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

如果我在那些信号处理程序中关闭了文件对象,并且脚本完成后,我是否涵盖了所有情况或是否错过了任何事情?有更好的方法吗?

谢谢

0 个答案:

没有答案