如何中止Python脚本的执行?

问题描述:

可能重复:
Terminating a Python script如何中止Python脚本的执行?

我有,我想,如果条件得到满足,停止执行一个简单的Python脚本。

例如:

done = True 
if done: 
    # quit/stop/exit 
else: 
    # do other stuff 

从本质上讲,我要找的东西,等效表现在一个函数体的“回归”的关键字,允许的代码流退出功能,而不是执行剩下的代码。

要退出脚本就可以使用,

import sys 
sys.exit() 

您也可以提供一个退出状态值,通常是一个整数。

import sys 
sys.exit(0) 

退出零,通常被解释为成功。非零代码通常被视为错误。默认值是用零退出。

import sys 
sys.exit("aa! errors!") 

打印“aa!errors!”并退出时状态码为1.

os模块中还有一个_exit()函数。 sys.exit()函数引发SystemExit异常以退出程序,因此可以执行语句和清理代码。 os._exit()版本不这样做。它只是结束程序而不做任何清理或清空输出缓冲区,所以通常不应该使用它。

Python docs表示os._exit()是结束使用os.fork()调用创建的子进程的正常方式,因此它在某些情况下有用。

exit()应该这样做:

+0

比我快三秒:P – Dana 2008-10-07 16:48:40

+3

而且我甚至先在shell中测试它:-) – Sec 2008-10-07 16:50:06

+0

该死的你,我没有看到这个/及时作出反应(在解释器中测试也是肯定的)*摇动拳头*;) – Runevault 2008-10-07 16:50:50

exit()应该这样做。

如果整个程序应该停止使用sys.exit(),否则只需使用空的返回值。

import sys 
sys.exit() 

您可以将脚本的主体放入函数中,然后您可以从该函数返回。

def main(): 
    done = True 
    if done: 
    return 
    # quit/stop/exit 
    else: 
    # do other stuff 

if __name__ == "__main__": 
    #Run as main program 
    main() 

既可以使用:

import sys 
sys.exit(...) 

或:

raise SystemExit(...) 

可选参数可以是退出代码或错误消息。两种方法都是相同的。我过去比较喜欢sys.exit,但是我最近改用了SystemExit,因为它似乎在其他代码中更加出色(由于提高了关键字)。

尝试

sys.exit("message") 

它就像perl的

die("message") 

如果这是你在找什么。它会终止脚本的执行,即使它是从导入的模块调用/ def /函数