如何中止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 /函数中调用,它也会终止脚本的执行