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 相关文章推荐
python 测试实现方法
Dec 24 Python
python魔法方法-自定义序列详解
Jul 21 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
Python实现iOS自动化打包详解步骤
Oct 03 Python
python 用opencv调用训练好的模型进行识别的方法
Dec 07 Python
Python对象转换为json的方法步骤
Apr 25 Python
python生成requirements.txt的两种方法
Sep 18 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
Jul 03 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
mac安装python3后使用pip和pip3的区别说明
Sep 01 Python
python制作微博图片爬取工具
Jan 16 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
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
基于PHPexecl类生成复杂的报表表头示例
2016/10/14 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
由document.body和document.documentElement想到的
2009/04/13 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
2019/03/28 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
2020/10/02 Javascript
Python入门教程之if语句的用法
2015/05/14 Python
python制作花瓣网美女图片爬虫
2015/10/28 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
Python中存取文件的4种不同操作
2018/07/02 Python
Python中GIL的使用详解
2018/10/03 Python
python实现祝福弹窗效果
2019/04/07 Python
Python中的xlrd模块使用原理解析
2020/05/21 Python
Python自动化测试中yaml文件读取操作
2020/08/20 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
大学毕业生自我鉴定
2013/11/05 职场文书
英文简历中的自荐信范文
2013/12/14 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
旅游市场营销方案
2014/03/09 职场文书
幼儿园教师自我鉴定
2014/03/20 职场文书
高三毕业寄语
2014/04/10 职场文书
机关工会工作总结2015
2015/05/26 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
CSS的calc函数用法小结
2022/06/25 HTML / CSS