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写的服务监控程序实例
Jan 31 Python
仅利用30行Python代码来展示X算法
Apr 01 Python
R语言 vs Python对比:数据分析哪家强?
Nov 17 Python
Python进阶学习之特殊方法实例详析
Dec 01 Python
python用户管理系统的实例讲解
Dec 23 Python
Python字符串的常见操作实例小结
Apr 08 Python
python字符串格式化方式解析
Oct 19 Python
Python坐标线性插值应用实现
Nov 13 Python
python中count函数简单的实例讲解
Feb 06 Python
python 控制台单行刷新,多行刷新实例
Feb 19 Python
Django3中的自定义用户模型实例详解
Aug 23 Python
java字符串格式化输出实例讲解
Jan 06 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/09/16 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
海量经典的jQuery插件集合
2010/01/12 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
2012/02/07 Javascript
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
JQuery Highcharts 动态生成图表的方法
2013/11/15 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
JS+Ajax实现百度智能搜索框
2017/08/04 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
Javascript中从学习bind到实现bind的过程
2018/01/05 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
vue通过video.js解决m3u8视频播放格式的方法
2019/07/30 Javascript
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
解读Django框架中的低层次缓存API
2015/07/24 Python
对python3标准库httpclient的使用详解
2018/12/18 Python
Python实现计算文件MD5和SHA1的方法示例
2019/06/11 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
2019/09/16 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
公司捐款倡议书
2014/05/14 职场文书
幸福终点站观后感
2015/06/04 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
利用JavaScript写一个简单计算器
2021/11/27 Javascript