无法使用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作为参数,则该值为true;如果你省略了它,它就是假的。

type=bool无法正常工作的原因是,传递给bool函数的任何非空字符串都将导致True。(如果需要,您可以编写一个函数,如果字符串为"True",则返回True,如果为"False"则返回False,并将其用于type,但这不是典型的用例。(

相关内容

  • 没有找到相关文章

最新更新