0

我想在程序被用户关闭时执行一个函数。

例如,如果主程序是time.sleep(1000),我如何写一个txt来记录程序的意外终止。

该程序由cxfreeze打包成exe。单击“X”关闭控制台窗口。

我知道atexit可以处理 sys.exit(),但是有没有更强大的方法可以处理关闭窗口事件?

问题

  1. 这在 Python 中可能吗?
  2. 如果是这样,我该怎么做?
4

3 回答 3

2

您将获得的最接近的是使用退出处理程序:

def bye():
  print 'goodbye world!!'

import atexit
atexit.register(bye)

这可能不起作用,具体取决于 python 如何终止的技术细节(它依赖于正常的解释器终止)

于 2013-05-16T14:50:03.140 回答
1

您可以使用该atexit模块注册程序退出时要执行的功能。

于 2013-05-16T14:48:39.810 回答
0

最简单的方法是将您的行为包装在 try/finally 中,并将您的退出行为放在 finally 块中。

try:
  normal_behavior()
finally:
  on_exit_behavior()
于 2013-05-16T14:54:14.293 回答