如果在命令行或不存在的命令行中提供ARG,则Python ArgParse不同的值
我想使用python的 argparse
来配置命令行的参数输入。解析参数的行为可以是:
-
none
如果命令行中没有名称。 - 如果提供了名称但留为空,则默认为一个值。
- 提供的值。
示例代码可以是:
parser = argparse.ArgumentParser()
parser.add_argument("-generate-config", metavar="-g", nargs="?")
解析:
>>> parser.parse_args(["-g"]) # leave it empty/didn't provide value
Namespace(generate_config=None)
>>> parser.parse_args(["-g", "config.txt"])
Namespace(generate_config='config.txt')
>>> parser.parse_args([]) # absent in the command line
Namespace(generate_config=None)
因此,将其留为空或不提供命令行中的参数,两个值都是 none
。如何为这两种情况设置不同的行为/值?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
搜索 stackflow ,设置默认值
argparse.suppress
inadd_argument
在此答案。因此:
尽管不完全像我想要的那样,但仍然可以通过在args 和
args.generate_config中选中
“ generate_config”来实现它。
After searching stackflow, setting default to
argparse.SUPPRESS
inadd_argument
is of great help, as inspired by this answer.So:
Though not exactly as what I want, it still can be achieved by checking
"generate_config" in args
andargs.generate_config is None
.