How do I abort the execution of a Python script?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Terminating a Python script
我有一个简单的python脚本,如果满足某个条件,我希望它停止执行。
例如:
1 2 3 4 5 | done = True if done: # quit/stop/exit else: # do other stuff |
本质上,我在寻找一些与函数体中的"return"关键字行为相同的东西,它允许代码流退出函数,而不执行剩余的代码。
要退出可使用的脚本,
1 2 | import sys sys.exit() |
还可以提供退出状态值,通常为整数。
1 2 | import sys sys.exit(0) |
以零退出,这通常被解释为成功。非零代码通常被视为错误。默认值是以零退出。
1 2 | import sys sys.exit("aa! errors!") |
打印"AA"!错误!"并退出,状态代码为1。
操作系统模块中还有一个exit()函数。函数的作用是:引发SystemExit异常以退出程序,因此可以执行Try语句和清除代码。操作系统的exit()版本不会这样做。它只是在不进行任何清理或刷新输出缓冲区的情况下结束程序,因此通常不应该使用它。
python文档指出os.u exit()是结束通过调用os.fork()创建的子进程的正常方法,因此它在某些情况下确实有用途。
1 2 | import sys sys.exit() |
您可以将脚本的主体放入一个函数中,然后从该函数返回。
1 2 3 4 5 6 7 8 9 10 11 | def main(): done = True if done: return # quit/stop/exit else: # do other stuff if __name__ =="__main__": #Run as main program main() |
您可以使用:
1 2 | import sys sys.exit(...) |
或:
1 | raise SystemExit(...) |
可选参数可以是退出代码或错误消息。两种方法是相同的。我以前更喜欢sys.exit,但最近我转向了raising systemexit,因为它似乎在其他代码中更突出(由于raise关键字)。
exit()应该完成这个技巧
exit()应该这样做。
尝试
1 | sys.exit("message") |
就像珍珠一样
1 | die("message") |
如果这是你要找的。即使从导入的模块/def/函数调用脚本,它也会终止脚本的执行。
如果整个程序应该停止,则使用sys.exit(),否则只使用空返回。