当前位置:  开发笔记 > 编程语言 > 正文

如何在Python中意外退出后再次运行程序?

如何解决《如何在Python中意外退出后再次运行程序?》经验,为你挑选了1个好方法。

我正在用Python写一个IRC机器人,由于它的alpha性质,它可能会出现意外错误并退出.

我可以用什么技术让程序再次运行?



1> Bastien Léon..:

您可以sys.exit()用来告诉程序异常退出(通常,如果出错,则返回1).

您的Python脚本可能如下所示:

import sys

def main():
    # ...

if __name__ == '__main__':
    try:
        main()
    except Exception as e:
        print >> sys.stderr,  e
        sys.exit(1)
    else:
        sys.exit()

main()如果出现错误,您可以再次调用,但程序可能不会处于可以再次正常工作的状态.相反,在新流程中启动程序可能更安全.

因此,您可以编写一个调用Python脚本的脚本,在完成后获取其返回值,如果返回值与0不同(sys.exit()默认情况下用作返回值),则重新启动它.这看起来像这样:

import subprocess

command = 'thescript'
args = ['arg1', 'arg2']

while True:
    ret_code = subprocess.call([command] + args)

    if ret_code == 0:
        break

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有