无法使用 argparse 解析布尔值

Cannot parse boolean values with argparse

我尝试过但没有奏效的事情:

  1. parser.add_argument('--download',type=bool,default=False)
  2. parser.add_argument('--download',default=False,action='store_true')
  3. parser.add_argument('--download',action='store_true')

对于情况 1,传递 False 也被解释为 True。 对于案例 2 和案例 3,我收到错误

main.py: error: unrecognized arguments: False

Python 版本:3.8

为什么 argparse 不适用于布尔参数?

'store_true' 的工作方式是,如果您将 --download 作为参数,则值为真;如果你省略它,它就是错误的。

type=bool 无法如您所愿地工作的原因是传递给 bool 函数的任何非空字符串都将返回 True。 (如果你愿意,你可以编写一个函数,如果字符串为“True”则为 returns True,如果字符串为“False”则为 False,并将其用于 type,但这不是典型的use-case.)