如何使命令行参数充当标志或解析值?

时间:2021-04-27 20:21:54

标签: python argparse

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

  • 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"

1 个答案:

答案 0 :(得分:4)

解决方案是指定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"
相关问题