如何中止Python脚本的执行?

时间:2008-10-07 16:46:37

标签: python syntax scripting exit

  

可能重复:
  Terminating a Python script

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

例如:

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

本质上,我正在寻找与函数体中的'return'关键字等效的东西,它允许代码流退出函数而不执行剩余的代码。

8 个答案:

答案 0 :(得分:237)

要退出可以使用的脚本,

import sys
sys.exit()

您还可以提供退出状态值,通常为整数。

import sys
sys.exit(0)

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

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

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

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

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

答案 1 :(得分:18)

import sys
sys.exit()

答案 2 :(得分:17)

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

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

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

答案 3 :(得分:14)

您可以使用:

import sys
sys.exit(...)

或:

raise SystemExit(...)

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

答案 4 :(得分:4)

exit()应该做的伎俩

答案 5 :(得分:3)

exit()应该这样做。

答案 6 :(得分:2)

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

答案 7 :(得分:2)

尝试

sys.exit("message")

就像perl

die("message")

如果这是你正在寻找的。即使从导入的模块/ def / function

调用脚本,它也会终止脚本的执行