python argparse传入布尔参数false不生效的解决


Posted in Python onApril 20, 2020

跑代码时,在命令行给python程序传入bool参数,但无法传入False,无论传入True还是False,程序里面都是True。下面是代码:

parser.add_argument("--preprocess", type=bool, default=True, help='run prepare_data or not')

高端解决方案

使用可选参数store_true,将上述代码改为:

parse.add_argument("--preprocess", action='store_true', help='run prepare_data or not')

在命令行执行py文件时,不加--preprocess,默认传入的preprocess参数为False;

如果加--preprocess,则传入的是True。

还可以将上述代码改为:

parse.add_argument("--preprocess", default='False', action='store_true', help='run prepare_data or not')

和 1 中表达的意思完全相同。

在命令行执行py文件时,不加--preprocess,默认传入的preprocess参数为False;

如果加--preprocess,则传入的是True。

还可以将上述代码改为:

parse.add_argument("--preprocess", default='True', action='store_true', help='run prepare_data or not')

和 1 中表达的意思完全相反。

在命令行执行py文件时,不加--preprocess,默认传入的preprocess参数为True;

如果加--preprocess,则传入的是False。

产生的原因和较Low的解决方案

猜测可能的原因是数据类型导致的,传入的都是string类型,转为bool型时,由于是非空字符串,所以转为True。

从这个角度去更改的话,由于type参数接收的是callable的参数类型来对我们接收的原始参数做处理,我们可以定义一个函数赋值给type参数,用它对原始参数做处理:

parser.add_argument("--preprocess", type=str2bool, default='True', help='run prepare_data or not')

下面定义这个函数将str类型转换为bool型:

def str2bool(str):
return True if str.lower() == 'true' else False

补充知识:parser.add_argument验证格式

我就废话不多说了,还是直接看代码吧!

article_bp = Blueprint('article', __name__, url_prefix='/api')

api = Api(article_bp)
parser = reqparse.RequestParser()
parser.add_argument('name', type=str, help='必须填写名称', required=True)
channel_fields = {
 'id': fields.Integer,
 'cname': fields.String
}

class ChannelResource(Resource):
 def get(self):
 channels = Channel.query.all()
 return marshal(channels, channel_fields)

 def post(self):
 args = parser.parse_args()
 if args:
  channel = Channel()
  channel.cname = args.get('name')
  channel.save()
  return {'msg': '频道添加成功', 'channel': marshal(channel, channel_fields)}
 else:
  return {'msg': '频道添加失败'}

以上这篇python argparse传入布尔参数false不生效的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django中ORM表的创建和增删改查方法示例
Nov 15 Python
python爬取基于m3u8协议的ts文件并合并
Apr 26 Python
Python IDE Pycharm中的快捷键列表用法
Aug 08 Python
python二分法查找算法实现方法【递归与非递归】
Dec 06 Python
python接口自动化如何封装获取常量的类
Dec 24 Python
python与mysql数据库交互的实现
Jan 06 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
Feb 28 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
Oct 12 Python
Pycharm常用快捷键总结及配置方法
Nov 14 Python
Python下opencv库的安装过程及问题汇总
Jun 11 Python
Python 中 Shutil 模块详情
Nov 11 Python
http通过StreamingHttpResponse完成连续的数据传输长链接方式
Feb 12 Python
parser.add_argument中的action使用
Apr 20 #Python
Python ArgumentParse的subparser用法说明
Apr 20 #Python
python列表的逆序遍历实现
Apr 20 #Python
python sitk.show()与imageJ结合使用常见的问题
Apr 20 #Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 #Python
python 错误处理 assert详解
Apr 20 #Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
Apr 20 #Python
You might like
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
thinkPHP下的widget扩展用法实例分析
2015/12/26 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
基本DOM节点操作
2017/01/17 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
详解KOA2如何手写中间件(装饰器模式)
2018/10/11 Javascript
nodejs同步调用获取mysql数据时遇到的大坑
2019/03/02 NodeJs
vue elementUI使用tabs与导航栏联动
2019/06/21 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
浅谈Python中数据解析
2015/05/05 Python
python编程线性回归代码示例
2017/12/07 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
解决python flask中config配置管理的问题
2019/07/26 Python
Python与C/C++的相互调用案例
2021/03/04 Python
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
公司门卫岗位职责
2014/03/15 职场文书
政府法律服务方案
2014/06/14 职场文书
2014年国庆标语
2014/06/30 职场文书
办公室务虚会发言材料
2014/10/20 职场文书
2014年涉外离婚协议书范本
2014/11/20 职场文书
教师辞职信范文
2015/02/28 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
国际贸易实训总结
2015/08/03 职场文书