如何从Python退出而无需追溯?


问题内容

我想知道如何在不对输出进行回溯转储的情况下退出Python。

我仍然希望能够返回错误代码,但是我不想显示回溯日志。

我希望能够exit(number)不使用跟踪而退出,但是如果发生异常(不是退出),则需要跟踪。


问题答案:

您大概遇到了一个异常,因此程序正在退出(带有追溯)。因此,要做的第一件事是在干净退出之前捕获该异常(可能带有消息,给出示例)。

在您的main例程中尝试以下操作:

import sys, traceback

def main():
    try:
        do main program stuff here
        ....
    except KeyboardInterrupt:
        print "Shutdown requested...exiting"
    except Exception:
        traceback.print_exc(file=sys.stdout)
    sys.exit(0)

if __name__ == "__main__":
    main()