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中的XML 工具
Apr 13 Python
详解python单例模式与metaclass
Jan 15 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
Jan 02 Python
Python中遍历列表的方法总结
Jun 27 Python
Django如何实现网站注册用户邮箱验证功能
Aug 14 Python
python 初始化一个定长的数组实例
Dec 02 Python
django实现后台显示媒体文件
Apr 07 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
Apr 21 Python
python实现俄罗斯方块小游戏
Apr 24 Python
Pandas读取csv时如何设置列名
Jun 02 Python
pytorch查看模型weight与grad方式
Jun 24 Python
Python的collections模块真的很好用
Mar 01 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正则的Unknown Modifier错误解决方法
2010/03/02 PHP
php第一次无法获取cookie问题处理
2014/12/15 PHP
PHP中ltrim()函数的用法与实例讲解
2019/03/28 PHP
PHP代码加密的方法总结
2020/03/13 PHP
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
2010/12/04 Javascript
Script的加载方法小结
2011/01/12 Javascript
跟我学Nodejs(三)--- Node.js模块
2014/05/25 NodeJs
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
eslint+prettier统一代码风格的实现方法
2020/07/22 Javascript
Python-嵌套列表list的全面解析
2016/06/08 Python
python类:class创建、数据方法属性及访问控制详解
2016/07/25 Python
Django中的Signal代码详解
2018/02/05 Python
python实现将汉字保存成文本的方法
2018/11/16 Python
简单了解python代码优化小技巧
2019/07/08 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
英国女士家居服网站:hush
2017/08/09 全球购物
教育技术职业规划范文
2014/03/04 职场文书
经典安踏广告词
2014/03/21 职场文书
会计专业自荐信
2014/06/03 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
办公室岗位职责范本
2015/04/11 职场文书
工作年限证明范本
2015/06/15 职场文书
环保宣传语大全
2015/07/13 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书