首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在程序退出之前做一些事情

在程序退出之前做一些事情
EN

Stack Overflow用户
提问于 2010-10-03 23:02:31
回答 4查看 105.9K关注 0票数 135

在你的程序退出之前,你怎么能有一个函数或者什么东西可以被执行呢?我有一个经常在后台运行的脚本,我需要它在文件退出之前将一些数据保存到文件中。有没有标准的方法来做这件事?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-03 23:04:35

查看atexit模块:

http://docs.python.org/library/atexit.html

例如,如果我想在应用程序终止时打印一条消息:

代码语言:javascript
运行
复制
import atexit

def exit_handler():
    print 'My application is ending!'

atexit.register(exit_handler)

请注意,这对于脚本的正常终止非常有效,但它不会在所有情况下都被调用(例如,致命的内部错误)。

票数 215
EN

Stack Overflow用户

发布于 2010-10-04 00:38:47

如果你想让某个东西总是运行,即使是在出错的时候,可以像这样使用try: finally: -

代码语言:javascript
运行
复制
def main():
    try:
        execute_app()
    finally:
        handle_cleanup()

if __name__=='__main__':
    main()

如果还想处理异常,可以在finally:之前插入except:

票数 37
EN

Stack Overflow用户

发布于 2010-10-03 23:11:04

如果您通过引发KeyboardInterrupt来停止脚本(例如,通过按Ctrl-C),则可以将其捕获为标准异常。您也可以用同样的方式捕获SystemExit

代码语言:javascript
运行
复制
try:
    ...
except KeyboardInterrupt:
    # clean up
    raise

我提到这一点只是为了让您了解它;这样做的“正确”方法是上面提到的atexit模块。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3850261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档