当前位置: 首页 > ai >正文

[python] argparse怎么指定bool类型?

前述

最近在写脚本的时候想要实现一个if 操作,通过用户输入。确定要不要启用某个语句。
非常自然的就是使用python的argparse包,但是发现了一个陷阱,记录下。

陷阱

argparse.ArgumentParser() 可以指定输入类型,我可以设定为bool,但是发现这个不太能用,具体为如果我设定类型为bool,不管我输入什么,输出都是True
具体代码如下:

import argparsedef main():parser = argparse.ArgumentParser()parser.add_argument('--o1', type=bool, default=False)args = parser.parse_args()if args.o1: print("o1 is True")else:print("o1 is False")if __name__ == '__main__':main()

不指定的话默认为Flase,输出如下
在这里插入图片描述
如果指定True的话,输出为True
在这里插入图片描述
好像没啥问题,但是如果指定False,却出现了True
在这里插入图片描述
因此这种这种方式不太可行,任何指定参数的行为都会被判定为True。

正确做法

使用action='store_true'
对比代码如下:

import argparsedef main():parser = argparse.ArgumentParser()parser.add_argument('--o1', type=bool, default=False)parser.add_argument('--o2', action='store_true', default=False)args = parser.parse_args()if args.o1: print("o1 is True")else:print("o1 is False")if args.o2:print("o2 is True")else:print("o2 is False")if __name__ == '__main__':main()

如果没有指定,都是False
在这里插入图片描述
如果指定了o2,直接变成True,也不需要输入False和True了。
在这里插入图片描述

http://www.xdnf.cn/news/9820.html

相关文章:

  • ST-GCN
  • 外地车在北京进京证用完后该如何行驶
  • Free2AI:企业智能化转型的加速器
  • 第七十篇 从餐厅后厨到电影院选座:生活场景拆解Java并发编程核心
  • Unity3D多场景管理框架设计
  • 可靠数据传输原理
  • 3.mkdir新建目录命令与touch新建文件命令
  • Executors工具类的潜在问题
  • Java 面试实录:从Spring到微服务的技术探讨
  • 仿真每日一练 | ABAQUS显式动力学分析——小球跌落
  • JVM——SubstrateVM:AOT编译框架
  • RS232/485转Profinet网关通讯气体检漏仪案例分享
  • Swift 解锁 LeetCode 热门难题:不改数组也能找出重复数字?
  • Nacos 配置管理案例:nacos-spring-cloud-config-example详解
  • IPD的基础理论与框架——(四)矩阵型组织:打破部门壁垒,构建高效协同的底层
  • django项目开启debug页面操作有数据操作记录
  • 首发支持! 基于昇腾MindIE玩转InternVL3多模态理解最新模型
  • 工具识别系统Python+深度学习+人工智能+卷积神经网络算法+TensorFlow+图像识别
  • ppt一键制作:ai自动生成PPT,便捷高效超级精美!
  • 全志F1c200开发笔记——移植Debian文件系统
  • 彻底卸载安装的虚拟机VMware Workstation软件
  • 树莓派超全系列教程文档--(51)如何使用SSH登录树莓派
  • RFID综合项目实训 | 基于C#的一卡通管理系统
  • AI绘画提示词:从零开始掌握Prompt Engineering的艺术
  • 群辉(synology)NAS老机器连接出现网页端可以进入,但是本地访问输入一样的账号密码是出现错误时解决方案
  • ST MCU CAN模块--TTCAN模式浅析
  • window 显示驱动开发-转换 Direct3D 固定函数状态(一)
  • 界面开发框架DevExpress XAF实践:集成.NET Aspire后如何实现自定义遥测?
  • Odoo 打印功能架构与工作流程深度剖析
  • 什么是node.js、npm、vue