所以我一直在疯狂地阅读关于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作为参数运行它时,它可以工作。
有谁知道为什么会这样?
答案 0 :(得分:2)
参数的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()