关于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 Web框架Flask中使用七牛云存储实例
Feb 08 Python
python操作 hbase 数据的方法
Dec 18 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
Jun 26 Python
使用Python开发SQLite代理服务器的方法
Dec 07 Python
Python 从一个文件中调用另一个文件的类方法
Jan 10 Python
如何不用安装python就能在.NET里调用Python库
Jul 12 Python
Python实现二叉搜索树BST的方法示例
Jul 30 Python
Django 框架模型操作入门教程
Nov 05 Python
Python3.7 读取音频根据文件名生成脚本的代码
Apr 07 Python
python 实现两个npy档案合并
Jul 01 Python
Java爬虫技术框架之Heritrix框架详解
Jul 22 Python
区分python中的进程与线程
Aug 13 Python
如何在Python中妥善使用进度条详解
Apr 05 #Python
Python接口自动化之文件上传/下载接口详解
Apr 05 #Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
Python中使用Opencv开发停车位计数器功能
Python采集股票数据并制作可视化柱状图
python疲劳驾驶困倦低头检测功能的实现
Python实现自动玩连连看的脚本分享
Apr 04 #Python
You might like
浅谈php函数serialize()与unserialize()的使用方法
2014/08/19 PHP
php的ddos攻击解决方法
2015/01/08 PHP
php实现阳历阴历互转的方法
2015/10/28 PHP
完美解决在ThinkPHP控制器中命名空间的问题
2017/05/05 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
js实现仿QQ秀换装效果的方法
2015/03/04 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
理解AngularJs指令
2015/12/10 Javascript
深入浅析AngularJS中的module(模块)
2016/01/04 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
全面解析Bootstrap中tab(选项卡)的使用方法
2016/06/06 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
js实现自动轮换选项卡
2017/01/13 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
django使用channels2.x实现实时通讯
2018/11/28 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
Python Merge函数原理及用法解析
2020/09/16 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
新闻记者实习自我鉴定
2013/09/19 职场文书
教师师德反思材料
2014/02/15 职场文书
相亲大会策划方案
2014/06/05 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
侵犯商业秘密的律师函
2015/05/27 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫