协慌网

登录 贡献 社区

终止 Python 脚本

我知道 PHP 中的die()命令可以提前停止脚本。

我怎么能用 Python 做到这一点?

答案

import sys
sys.exit()

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

sys. <strong>exit</strong> ([ <em>arg</em> ])

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

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

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

请注意,这是退出的 “好方法”。 @ glyphtwistedmatrix低于指出,如果你想要一个 “硬退出”,你可以使用 os._exit( 错误代码 ),但它很可能与操作系统相关的在一定程度上(也许它不会在 Windows 下一个错误代码,例如),它肯定是不太友好,因为它不会让解释程序在进程死亡之前进行任何清理。

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

例:

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

另一种方式是:

raise SystemExit