【问题标题】:Unable to assign default values to arguments in Python argparse无法为 Python argparse 中的参数分配默认值
【发布时间】:2023-09-10 17:28:01
【问题描述】:

我正在使用 Python argparse 通过 CLI 接收参数。我尝试过使用以下内容,但是当我没有给出任何参数时,它会给出None 的输出。我希望默认的是const= 中提供的那些。请看一下。

parser = argparse.ArgumentParser()
parser.add_argument('--input', nargs='?', const='testInput')
parser.add_argument('--target', nargs='?', const='testTarget')
parser.add_argument('--msg', nargs='?', const='helloFromTheOtherSide')
args = parser.parse_args()
print args.input

如果我不提供输入,它会像我说的那样将其打印为None。我希望它改为打印TestInput..

【问题讨论】:

    标签: python command-line-arguments argparse


    【解决方案1】:

    使用default 参数:

    parser = argparse.ArgumentParser()
    parser.add_argument('--input', nargs='?', default='testInput')
    parser.add_argument('--target', nargs='?', default='testTarget')
    parser.add_argument('--msg', nargs='?', default='helloFromTheOtherSide')
    args = parser.parse_args()
    print args.input
    

    【讨论】:

      【解决方案2】:

      parser.add_argument('--input', nargs='?', default='testInput', const='aConst')
      

      您有 3 种方式的选择

      prog                  # input='testInput'
      prog --input          # input='aConst'
      prog --input myfile   # input='myfile'
      

      如果您不需要 aConst 选项,请省略 nargs='?'。由于它是一个标记的参数,它已经是可选的。它不需要`?'。

      parser.add_argument('--input', default='testInput')
      

      【讨论】:

        最近更新 更多