Python argparse:默认值或指定值

问题描述 投票:146回答:2

我希望有一个可选参数,如果仅存在未指定值的标志,则默认为一个值,但是存储用户指定的值,而不是如果用户指定一个值,则存储默认值。是否已经有可用于此的操作?

示例:

python script.py --example
# args.example would equal a default value of 1
python script.py --example 2
# args.example would equal a default value of 2

我可以创建一个动作,但想查看是否存在执行此操作的方法。

python default-value argparse
2个回答
237
投票
import argparse parser = argparse.ArgumentParser() parser.add_argument('--example', nargs='?', const=1, type=int) args = parser.parse_args() print(args)

% test.py Namespace(example=None) % test.py --example Namespace(example=1) % test.py --example 2 Namespace(example=2)

    [nargs='?'表示0或1自变量
  • const=1设置参数为0时的默认值
  • [type=int将参数转换为int

  • 即使未指定test.py,如果您希望example--example设置为1,则包括default=1。也就是说,用

    parser.add_argument('--example', nargs='?', const=1, type=int, default=1)

    然后

    % test.py Namespace(example=1)


  • 0
    投票
    实际上,您只需要在default脚本中使用add_argumenttest.py参数:

    import argparse if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--example', default=1) args = parser.parse_args() print(args.example)


    test.py --example % 1 test.py --example 2 % 2
    详细信息为here
    © www.soinside.com 2019 - 2024. All rights reserved.