我想在程序被用户关闭时执行一个函数。
例如,如果主程序是time.sleep(1000)
,我如何写一个txt来记录程序的意外终止。
该程序由cxfreeze打包成exe。单击“X”关闭控制台窗口。
我知道atexit可以处理 sys.exit(),但是有没有更强大的方法可以处理关闭窗口事件?
问题
- 这在 Python 中可能吗?
- 如果是这样,我该怎么做?
您将获得的最接近的是使用退出处理程序:
def bye():
print 'goodbye world!!'
import atexit
atexit.register(bye)
这可能不起作用,具体取决于 python 如何终止的技术细节(它依赖于正常的解释器终止)
您可以使用该atexit
模块注册程序退出时要执行的功能。
最简单的方法是将您的行为包装在 try/finally 中,并将您的退出行为放在 finally 块中。
try:
normal_behavior()
finally:
on_exit_behavior()