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之玩转字符串(2)
Sep 14 Python
Python Web框架Flask信号机制(signals)介绍
Jan 01 Python
python Django模板的使用方法
Jan 14 Python
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 Python
利用python实现对web服务器的目录探测的方法
Feb 26 Python
python 读写excel文件操作示例【附源码下载】
Jun 19 Python
Linux下远程连接Jupyter+pyspark部署教程
Jun 21 Python
pandas按行按列遍历Dataframe的几种方式
Oct 23 Python
Python如何基于smtplib发不同格式的邮件
Dec 30 Python
Python文件读写w+和r+区别解析
Mar 26 Python
详解python变量与数据类型
Aug 25 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
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
Vue.js实现一个todo-list的上移下移删除功能
2017/06/26 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
2019/01/30 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
Python中文件遍历的两种方法
2014/06/16 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
Python中反射和描述器总结
2018/09/23 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
美国围栏公司:Walpole Outdoors
2019/11/19 全球购物
护士自我鉴定
2013/10/23 职场文书
小学生防溺水广播稿
2014/01/12 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
企业授权委托书范本
2014/04/02 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
python中filter,map,reduce的作用
2022/06/10 Python