小编典典

如何终止脚本?

all

我知道die()PHP 中的命令会提前退出脚本。

我怎样才能在 Python 中做到这一点?


阅读 285

收藏
2022-02-25

共1个答案

小编典典

import sys
sys.exit()

sys模块文档中的详细信息:

sys. **exit** ([ _arg_ ])

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

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

由于exit()最终“只是”引发了异常,所以只有在主线程调用时才会退出进程,异常不会被拦截。

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

2022-02-25