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()
所以我一直在疯狂地到处阅读关于 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()