首页 > 编程语言 >【Python】python中的argparse包在解析bool型参数时的细节问题

【Python】python中的argparse包在解析bool型参数时的细节问题

时间:2023-04-09 11:34:01浏览次数:43  
标签:argparse use 定义 Python parser entity python bool 参数


1.参数定义

定义了如下三个参数,其中use_entity_typeuse_entity_idbool 参数。这两个bool型参数的默认值都是True

【Python】python中的argparse包在解析bool型参数时的细节问题_默认值

2. 命令行传参

这里是vscode中的launch.json 文件中的参数定义,想把下面的两个参数修改成False

【Python】python中的argparse包在解析bool型参数时的细节问题_默认值_02

3. 运行过程

运行代码,但是发现经过parser.parse_args()之后,参数 use_entity_typeuse_entity_id 值仍未变。这是为什么呢?

【Python】python中的argparse包在解析bool型参数时的细节问题_python_03


原因在于:虽然指定了参数类型是bool,但是无论在命令行中传入何值,parser解析得到的结果始终都是True

4.解决方法

那么有没有什么解决方法呢?有的

使用 action='store_true' 可以帮忙解决这个问题。即将 add_arguments处的定义修改如下:

【Python】python中的argparse包在解析bool型参数时的细节问题_默认值_04


接着传入参数是,直接通过是否给出这个参数名就能解决上面这个问题了。


标签:argparse,use,定义,Python,parser,entity,python,bool,参数
From: https://blog.51cto.com/lawsonabs/6178704

相关文章

  • python—numpy库学习
    importnumpyasnparr=np.array([1,2,3])print(arr.shape)print(arr)arr=np.arange(10)print(arr.shape)print(arr)#(开始,截止,步长)#[开始,截止)范围内步长为间隔的更新arr=np.arange(0,10,2.5)print(arr.shape)print(arr)#在一个区间内返回等间距数组arr=np.linspac......
  • Code-C++ Invoke Python
    Code-C++InvokePythonhttps://www.cnblogs.com/yongchao/p/17299892.html使用C或C++扩展Python扩展和嵌入Python解释器Python3.10.11Python/CAPI参考手册Python3.11.3Python/CAPI参考手册https://www.cnblogs.com/lidabo/p/17043302.htmlhttps://bl......
  • OS-Linux-Ubuntu22.04x64-Python-C++调用Python缺少Python.h
    OS-Linux-Ubuntu22.04x64-Python-C++调用Python缺少Python.h使用C或C++扩展Python扩展和嵌入Python解释器Python3.10.11Python/CAPI参考手册Python3.11.3Python/CAPI参考手册参考https://www.cnblogs.com/lidabo/p/17043302.htmlhttps://blog.csdn.net/z......
  • python 十六进制转换字符
    a=b'\xE6\x88\x91\xE6\x98\xAF\xE8\xAF\xB7\xE6\xB1\x82'print(a.decode('utf-8').encode('utf-8'))print(a.decode('gbk').encode('gbk'))print(a.decode(encoding="utf-8",errors="strict......
  • Python的time库
    time库为Python标准库,常用来处理和转换时间。官方文档:time---时间的访问和转换—Python3.11.2文档time.timetime.time()返回一个float类型的时间戳。如下:什么是时间戳?时间戳是自世界协调时(UTC)起始时间1970年1月1日0时0分0秒,即北京时间(UTC+8)1970年1月1日8时0分0秒......
  • Python中将CSV文件转换为H5AD文件
    将CSV文件转换为H5AD文件,可以按照以下步骤进行:使用pandas库将CSV文件读入到Python中,并将其转换为dataframe格式: importpandasaspddf=pd.read_csv('data.csv')使用anndata库将dataframe转换为AnnData对象: importanndataasadadata=ad.AnnData(df)将......
  • python合并多个PPT文件到 文档\演示文稿1.pptx
    #encoding=utf8#-*-coding:utf-8-*-#pipinstallpython-pptx-ihttps://pypi.tuna.tsinghua.edu.cn/simple#pipinstallpython-docx-ihttps://pypi.tuna.tsinghua.edu.cn/simple#pipinstallpandas-ihttps://pypi.tuna.tsinghua.edu.cn/simple#pipinstall......
  • python opencv cv2.putText()显示中文问题
    完整代码如下:(其中cv2AddChineseText为封装代码)importcv2ascvfromPILimportImage,ImageDraw,ImageFontimportnumpyasnp#encoding:utf-8importbase64importrequestsdefcv2AddChineseText(img,text,position,textColor=(0,0,255),textSize=15):if......
  • Python ORM Pony MySQL数据库 常用操作
    Pony是一个高级的对象关系映射器ORM框架。Pony它能够使用Python生成器表达式和lambdas向数据库编写查询。Pony分析表达式的抽象语法树,并将其转换为SQL查询。支持SQLite,MySQL,PostgreSQL和Oracle等数据库,本文主要介绍PythonORMPony中MySQL数据库常用操作,及数据增加、删除、修......
  • 自学Python爬虫笔记(day4)
    环境python3.9版本及以上,开发工具pycharm 今天是对requests模块的应用实战,分别是爬取豆瓣电影TOP250的基本信息和电影天堂“2023必看热片”的名称及下载地址。具体如下:'''爬取豆瓣电影TOP250的基本信息思路:1.拿到页面源代码2.编写正则,提取页面数据3.保存数据'''import......