【问题标题】:How do I make a command line argument act as either a flag or a parsed value? [duplicate]如何使命令行参数充当标志或解析值? [复制]
【发布时间】:2021-07-21 05:11:35
【问题描述】:

如何指定解析的参数应该是:

  • False 如果未指定
  • True 如果存在(没有价值)
  • 或指定值

例如,我希望发生以下情况:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--the_arg", ...)

print(parser.parse_args(["--the_arg"]).the_arg)              # should print True
print(parser.parse_args([]).the_arg)                         # should print False
print(parser.parse_args(["--the_arg", "my_value"]).the_arg)  # should print "my_value"

【问题讨论】:

    标签: python argparse


    【解决方案1】:

    解决方案是指定parser.add_argument的所有nargsconstdefault参数

    这行得通:

    import argparse
    
    parser = argparse.ArgumentParser()
    parser.add_argument("--the_arg", nargs="?", const=True, default=False)
    
    print(parser.parse_args(["--the_arg"]).the_arg) #prints True
    print(parser.parse_args().the_arg) #prints False
    print(parser.parse_args(["--the_arg", "my_value"]).the_arg) #prints "my_value"
    

    【讨论】:

      猜你喜欢
      • 2021-03-14
      • 2016-01-11
      • 2011-03-15
      • 2011-04-27
      • 2019-10-13
      • 1970-01-01
      • 2020-01-01
      • 2013-11-08
      • 1970-01-01
      相关资源
      最近更新 更多