Python退出代码

时间:2011-07-20 07:35:06

标签: python unix

在哪里可以找到有关Unix上“python”进程退出代码含义的信息?例如,如果我执行“python thisfiledoesntexist.py”,我会得到退出代码2

要点:

from errno import errorcode
print errorcode[2]

5 个答案:

答案 0 :(得分:8)

如上所述,错误代码主要来自执行的脚本和sys.exit()

作为解释器参数的非现有文件的示例属于不同的类别。虽然它没有说明我猜,这些退出代码是“标准”linux错误代码。有一个名为errno的模块提供了这些错误编号(退出代码来自linux/include/errno.h

即:errno.ENOENT(代表“没有这样的文件或目录”)的数字2与你的例子一致。

答案 1 :(得分:7)

python手册说明了它的退出代码:

  

有些系统有一个约定,用于为特定退出代码指定特定含义,但这些通常都是不发达的; Unix程序通常使用2表示命令行语法错误,1表示所有其他类型的错误。

因此,由于您将thisfiledoesntexist.py指定为命令行参数,因此返回代码为2(假设文件实际上不存在。在这种情况下,我建议将其重命名为{{ 1}}。thisfiledoesexist.py

其他如此解析错误,返回码由python程序运行确定。除非您使用;)指定另一个退出代码,否则将返回0。 Python本身不会干涉。

答案 2 :(得分:3)

也许os module的退出代码常量可以帮到你。另请查看sys.exit文档。

答案 3 :(得分:1)

答案 4 :(得分:1)

不幸的是,没有100%保证Pythons退出代码将是documentation声称它们将是:os._exit允许python程序员定义应该使用哪个退出代码,表示python file_exists_but_claims_that_it_does_not.py可以退出os.EX_DATAERR