控制台窗口关闭时执行功能?

时间:2013-05-16 14:46:35

标签: python

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

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

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

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

问题

  1. 这在Python中是否可行?
  2. 如果是这样,我该怎么做?

3 个答案:

答案 0 :(得分:2)

最接近的是使用退出处理程序:

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

import atexit
atexit.register(bye)

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

答案 1 :(得分:1)

您可以使用atexit module注册程序退出时执行的功能。

答案 2 :(得分:0)

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

try:
  normal_behavior()
finally:
  on_exit_behavior()