如何终止脚本?

2022-09-05 00:58:11

如何尽早退出脚本,就像PHP中的命令一样?die()


答案 1
import sys
sys.exit()

来自 sys 模块文档的详细信息:

sys.exit([arg])

退出 Python。这是通过引发 SystemExit 异常来实现的,因此将遵守 try 语句的 finally 子句指定的清理操作,并且可以在外部级别截获退出尝试。

可选参数 arg 可以是给出退出状态的整数(默认为零),也可以是其他类型的对象。如果它是一个整数,零被认为是“成功终止”,任何非零值被shell等视为“异常终止”。大多数系统要求它在 0-127 范围内,否则会产生未定义的结果。有些系统有一个约定,为特定的退出代码分配特定的含义,但这些代码通常不发达;Unix 程序通常使用 2 表示命令行语法错误,1 表示所有其他类型的错误。如果传递了另一种类型的对象,则 None 等效于传递零,任何其他对象都将打印到 stderr 并生成退出代码 1。特别是,是在发生错误时退出程序的快速方法。sys.exit("some error message")

由于 exit() 最终“仅”引发异常,因此它只会在从主线程调用时退出进程,并且不会截获异常。

请注意,这是退出的“不错”方式。下面的 @glyphtwistedmatrix 指出,如果你想要一个“硬退出”,你可以使用 ,尽管它可能在某种程度上是特定于操作系统的(例如,它可能不会在窗口下采用错误代码),而且它肯定不太友好,因为它不允许解释器在进程死亡之前进行任何清理。另一方面,它确实会杀死整个进程,包括所有正在运行的线程,而(如文档中所说)只有在从主线程调用时才退出,而不会运行其他线程。os._exit(*errorcode*)sys.exit()


答案 2

尽早终止Python脚本的一种简单方法是使用内置函数。无需导入任何库,高效简单。quit()

例:

#do stuff
if this == that:
  quit()