关于Python中进度条的六个实用技巧分享


Posted in Python onApril 05, 2022

1 简介

费老师我在几年前写过的一篇文章(https://3water.com/article/eMTM54MzY25LjVk)中,介绍过tqdm这个在当下Python圈子中已然非常流行的进度条库,可以帮助我们为任何具有循环迭代过程的代码逻辑添加进度条,从而帮助我们感知代码运行的过程。

而随着tqdm这几年来的发展迭代,更多更好用的功能加入其中,今天的文章中我就给大家总结了6条非常值得学习的tqdm特性。

2 tqdm中实用的6个特性

2.1 autonotebook自动切换进度条风格

用过tqdm的朋友们大都知道它可以在常规的终端以及jupyter风格的各种编辑器中使用,且在后者中会以更美观的形式进行渲染,而以往我们通常需要在常规的终端里使用from tqdm import tqdm,在jupyter风格的编辑器中使用from tqdm.notebook import tqdm来分别导入。

而tqdm最近几个版本中引入了实验性质的新特性,使得我们只需要统一通过from tqdm.autonotebook import tqdm导入tqdm,就可以自适应检测不同的运行环境从而自动控制显示:

关于Python中进度条的六个实用技巧分享

2.2 延迟渲染进度条

有时候我们希望当循环过程很快就执行完时,可以不打印进度条,毕竟进度条的主要目的是监控长时间运行过程,这时我们就可以给tqdm()添加参数delay来设置延时的秒数,当循环过程实际运行时长低于delay则无需打印多余的迭代过程:

关于Python中进度条的六个实用技巧分享

2.3 自定义进度条色彩

通过为tqdm()设置参数colour,可以传入多种常见色彩格式值,这在jupyter类编辑器中效果尤为明显:

关于Python中进度条的六个实用技巧分享

2.4 自主控制的进度上限

有些情况下,我们传入tqdm()的对象在迭代过程中是无法预先计算得到进度上限轮次的,典型如pandas中数据框的itertuples(),这种时候我们就可以利用total参数自行预设上限:

关于Python中进度条的六个实用技巧分享

2.5 针对enumerate、zip和map的替代

Python中除了常规的循环过程以外,还有几种内置函数也具有迭代循环的属性,而tqdm为了方便我们对这些非典型的循环过程添加进度条,也单独开发了tenumerate、tzip以及tmap这三个API,用于替代enumerate、zip和map:

关于Python中进度条的六个实用技巧分享

2.6 设置进度条“用完即逝”

当我们希望为多层循环过程添加进度条监视时,常规的为每一层都直接使用tqdm(),会导致打印出过多的进度条,反而不利于我们观察进度过程。

而通过使用tqdm.auto中的trange(),我们可以通过设置参数leave=False,来让我们对应的进度条加载到头就自动消失掉,譬如下面动图中所展示的例子:

关于Python中进度条的六个实用技巧分享

总结

到此这篇关于Python中进度条的六个实用技巧分享的文章就介绍到这了,更多相关Python进度条实用技巧内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
使用python的chardet库获得文件编码并修改编码
Jan 22 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
May 03 Python
Python实现二叉树结构与进行二叉树遍历的方法详解
May 24 Python
Python异常处理操作实例详解
May 10 Python
django创建最简单HTML页面跳转方法
Aug 16 Python
python程序 创建多线程过程详解
Sep 23 Python
利用pyshp包给shapefile文件添加字段的实例
Dec 06 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
Mar 03 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
May 29 Python
python ssh 执行shell命令的示例
Sep 29 Python
python读写数据读写csv文件(pandas用法)
Dec 14 Python
Python并发编程实例教程之线程的玩法
Jun 20 Python
如何在Python中妥善使用进度条详解
Apr 05 #Python
Python接口自动化之文件上传/下载接口详解
Apr 05 #Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
Python中使用Opencv开发停车位计数器功能
Python采集股票数据并制作可视化柱状图
python疲劳驾驶困倦低头检测功能的实现
Python实现自动玩连连看的脚本分享
Apr 04 #Python
You might like
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
PHP 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
自己写的php curl库实现整站克隆功能
2015/02/12 PHP
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
jQuery中:checked选择器用法实例
2015/01/04 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
2021/01/05 Vue.js
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
记一次python 内存泄漏问题及解决过程
2018/11/29 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
美国领先的精品家居照明和装饰产品在线零售商:LightsOnline.com
2018/01/23 全球购物
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
在线课程:Skillshare
2019/04/02 全球购物
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
学院领导推荐信
2013/10/30 职场文书
档案室主任岗位职责
2014/02/12 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
趣味运动会开幕词
2015/01/28 职场文书
行政申诉状范文
2015/05/20 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
HTML基础详解(下)
2021/10/16 HTML / CSS