Python Argparse:使用空标志

Posted

技术标签:

【中文标题】Python Argparse:使用空标志【英文标题】:Python Argparse: Use an empty flag 【发布时间】:2017-08-30 01:17:03 【问题描述】:

我正在尝试使用argparse 编写一个python 脚本,如果-d 已设置,则将值设置为True

这是我正在尝试的:

parser.add_argument("-d", "--dynamic", required=False)

dynamic = False
if args.dynamic is not None:
  dynamic = True

我收到以下错误:

用法:psd.py [-h] -f 文件 [-d 动态] psd.py:错误:参数 -d/--dynamic: 需要一个参数

如何将标志设置为期望 0 个参数?

【问题讨论】:

重复***.com/questions/8259001/… 【参考方案1】:

使用动作

parser.add_argument("-d", "--dynamic", action='store_true')

您可以删除“必需”的 kwarg。

【讨论】:

当我这样做时,我没有收到错误,但即使我没有设置标志,动态也总是等于 True。 @PhilipKirkbride:听起来你还在做if args.dynamic is not None: ... 的事情。如果是这样,请停止这样做。 store_true 使参数默认为 False,而不是 None,如果未提供。 ah nvm 我知道应该怎么做 args.dynamic 将是 True 或 False 但始终存在

以上是关于Python Argparse:使用空标志的主要内容,如果未能解决你的问题,请参考以下文章

Python Argparse:使用单个大头钉作为标志,例如`./myscript -5` 像 Git 和 CoreUtils

为啥 argparse 不能正确解析我的布尔标志? [复制]

如何有一个特定的子命令需要带有 argparse 的标志?

与两个连接的 python3 脚本一起使用时的 argparse 冲突

如何根据 shell 查找结果添加 argparse 标志

管道 bash 到特定的 python 标志