python argparse bool 解析

2023-12-24 05:44:11
  • python 的 argparse,对于输入全部都是按照字符串读取,即便设置了 type=bool,依然是按照字符串获取。因此不论该参数设什么值(True/False),只要设置了,都会被获取成非空字符串,后续转 bool 就都是 true 了

  • 可以额外使用 action 参数,或者是添加一个 str2bool 的方法,来处理 boolean 的命令行参数

    • action 参数,action关键字默认状态有两种,store_true和store_false

      • 输入命令时,不指定其参数,则store_true显示为False,store_false显示为True
          parse.add_argument("--a", action="store_true")
      

      action类型参数 a 的值为 store_true,若命令行输入时不指定 a, 那么结果默认为 False,在命令行输入了 --a 参数,那么结果为 True

    • 添加一个 str2bool 的方法,来处理 boolean 的命令行参数

          parse.add_argument("--a", default=False, type=str2bool)
      

      str2bool

          def str2bool(value):
            if isinstance(value, bool):
                return value
            if value.lower() in ("yes", "true", "t", "y", "1"):
                return True
            elif value.lower() in ("no", "false", "f", "n", "0"):
                return False
            else:
                raise argparse.ArgumentTypeError("Boolean value expected")
      

文章来源:https://blog.csdn.net/qq_38342510/article/details/135177233
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。