如何在程序退出之前执行某项功能或某些功能?我有一个将在后台持续运行的脚本,我需要它在退出之前将一些数据保存到文件中 . 有这样做的标准方法吗?
查看 atexit 模块:
atexit
http://docs.python.org/library/atexit.html
例如,如果我想在应用程序终止时打印消息:
import atexit def exit_handler(): print 'My application is ending!' atexit.register(exit_handler)
请注意,这对于脚本的正常终止非常有用,但在所有情况下都不会被调用(例如,致命的内部错误) .
如果你想要总是运行一些东西,即使是错误,请使用try:finally:喜欢这个 -
def main(): try: execute_app() finally: handle_cleanup() if __name__=='__main__': main()
如果你还想处理异常,可以在finally之前插入一个except:
如果通过引发 KeyboardInterrupt 来停止脚本(例如按Ctrl-C),则可以将其作为标准异常捕获 . 你也可以用同样的方式捕捉 SystemExit .
KeyboardInterrupt
SystemExit
try: ... except KeyboardInterrupt: # clean up raise
我提到这只是为了让你了解它; 'right'这样做的方法是上面提到的 atexit 模块 .
3 回答
查看
atexit
模块:http://docs.python.org/library/atexit.html
例如,如果我想在应用程序终止时打印消息:
请注意,这对于脚本的正常终止非常有用,但在所有情况下都不会被调用(例如,致命的内部错误) .
如果你想要总是运行一些东西,即使是错误,请使用try:finally:喜欢这个 -
如果你还想处理异常,可以在finally之前插入一个except:
如果通过引发
KeyboardInterrupt
来停止脚本(例如按Ctrl-C),则可以将其作为标准异常捕获 . 你也可以用同样的方式捕捉SystemExit
.我提到这只是为了让你了解它; 'right'这样做的方法是上面提到的
atexit
模块 .