Python没有参数的argparse可选参数(不存储为true)

时间:2016-11-30 17:53:06

标签: python argparse

如何添加一个可选参数,该参数具有默认值,可以使用其他值调用,或者可以在没有值的情况下调用(并且具有默认值)。 所以我有这个论点

    parser.add_argument("-a", "--automatic", type=int, default=8)

我希望能打电话。 My_script.py -a如果我想要一个带有8作为参数的自动模式,但如果我想要一个带有10(或任何其他数字)作为参数的自动模式,我也想做例如My_script.py -a 10。 问题是当我使用My_script.py -a运行时,我得到一个参数。如果我不想指定8,我也不允许指定-a然后我必须运行My_script.py,这不是我想要的。

1 个答案:

答案 0 :(得分:0)

添加nargs='?'const=8。来自the documentation

  

ArgumentParser对象通常将单个命令行参数与要采取的单个操作相关联。 nargs关键字参数将不同数量的命令行参数与单个操作相关联。

     

...

     

'?'。如果可能,将从命令行使用一个参数,并将其作为单个项生成。如果不存在命令行参数,则将生成default的值。请注意,对于可选参数,还有一种情况 - 选项字符串存在但后面没有命令行参数。在这种情况下,将生成const的值。