如何中止Python脚本的执行?

可能重复:
终止一个Python脚本

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

例如:

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

从本质上讲,我正在寻找一些行为等同于函数体中的“return”关键字的东西,它允许代码stream退出函数而不执行剩余的代码。

要退出可以使用的脚本,

 import sys sys.exit() 

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

 import sys sys.exit(0) 

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

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

打印“aa!错误!” 并以状态码1退出。

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

Python文档指出os._exit()是通过调用os.fork()来结束一个subprocess的正常方式,所以它在某些情况下有用。

 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,因为在代码的其余部分(由于raise关键字),它似乎更好。

退出()应该做的伎俩

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

退出()应该这样做。

 done = True if not done: # do other stuff 

尝试

 sys.exit("message") 

这就像perl

 die("message") 

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