Python 2.7 Argparse 可选参数和必需参数

Python 2.7 Argparse Optional and Required arguments

所以我一直在疯狂地到处阅读关于 argparse 的教程,但似乎无法弄清楚为什么我的程序会出错。我的代码目前看起来像这样:

parser = argparse.ArgumentParser()
parser.add_argument("-d", "-debug", required = False, help = "optional parameter")
parser.add_argument("input_file", help = "file to be parsed")
args = parser.parse_args()

当我 运行 我的程序使用命令 "python myprogram.py -d inputfile" 时,它抱怨参数太少。此外,当我 运行 它以 inputfile 作为参数时,它起作用了。

有谁知道为什么会这样?

参数的 default action'store'store 操作通常期望 与标志关联。

您似乎希望这是一个布尔开关类型的标志,在这种情况下您需要 'store_true' 操作

parser = argparse.ArgumentParser()
parser.add_argument("-d", "--debug", required = False, help = "optional parameter", action = "store_true")
parser.add_argument("input_file", help = "file to be parsed")
args = parser.parse_args()