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使用在线API查询IP对应的地理位置信息实例
Jun 01 Python
跟老齐学Python之编写类之一创建实例
Oct 11 Python
Python类定义和类继承详解
May 08 Python
python实现逐个读取txt字符并修改
Dec 24 Python
python requests.post带head和body的实例
Jan 02 Python
python处理DICOM并计算三维模型体积
Feb 26 Python
Python实例方法、类方法、静态方法的区别与作用详解
Mar 25 Python
tensorflow-gpu安装的常见问题及解决方案
Jan 20 Python
自定义Django默认的sitemap站点地图样式
Mar 04 Python
Python代码一键转Jar包及Java调用Python新姿势
Mar 10 Python
Python中的全局变量如何理解
Jun 04 Python
python爬虫利用代理池更换IP的方法步骤
Feb 21 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
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
php使用curl存储cookie的示例
2014/03/31 PHP
PHP simplexml_load_file()函数讲解
2019/02/03 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
jquery+css实现动感的图片切换效果
2015/11/25 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
Vue3.0 响应式系统源码逐行分析讲解
2019/10/14 Javascript
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
python进程的状态、创建及使用方法详解
2019/12/06 Python
Python模拟登录requests.Session应用详解
2020/11/17 Python
python 基于opencv实现图像增强
2020/12/23 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
国际书籍零售商:Wordery
2017/11/01 全球购物
大学同学聚会邀请函
2014/01/19 职场文书
社区端午节活动方案
2014/01/28 职场文书
教师自我鉴定范文
2014/03/20 职场文书
经销商订货会主持词
2014/03/27 职场文书
党风廉设责任书
2014/04/16 职场文书
五年级作文之学校的四季
2019/12/05 职场文书
MySQL系列之四 SQL语法
2021/07/02 MySQL
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js
Python 数据可视化工具 Pyecharts 安装及应用
2022/04/20 Python