【发布时间】:2014-05-17 18:06:40
【问题描述】:
当我给出它不喜欢的 Python 的 argparse 输入时,它会引发一个代码为 2 的 SystemExit,即seems to mean "No such file or directory"。为什么要使用这个错误码?
import argparse
import errno
parser = argparse.ArgumentParser()
parser.add_argument('arg')
try:
parser.parse_args([])
except SystemExit as se:
print("Got error code {} which is {} in errno"
.format(se.code, errno.errorcode[se.code]))
产生这个输出:
usage: se.py [-h] arg
se.py: error: too few arguments
Got error code 2 which is ENOENT in errno
【问题讨论】:
-
退出码对于不同的系统有不同的含义。
errno代码是一个完全不同的标准。 -
@MartijnPieters,我没有意识到这一点。是否有任何关于 argparse 正在使用的标准(如果有)的信息?
-
@frostnational:那是关于
errno错误代码,不是关于为什么argparse使用 2 作为退出代码。你和这里的 OP 犯了同样的错误。