关于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实现360皮肤按钮控件示例
Feb 21 Python
python抓取网页中的图片示例
Feb 28 Python
pycharm 使用心得(四)显示行号
Jun 05 Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 Python
python如何在循环引用中管理内存
Mar 20 Python
Python简单计算给定某一年的某一天是星期几示例
Jun 27 Python
face++与python实现人脸识别签到(考勤)功能
Aug 28 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
Oct 30 Python
通过python实现windows桌面截图代码实例
Jan 17 Python
详解python3类型注释annotations实用案例
Jan 20 Python
python palywright库基本使用
Jan 21 Python
浅谈盘点5种基于Python生成的个性化语音方法
Feb 05 Python
如何在Python中妥善使用进度条详解
Apr 05 #Python
Python接口自动化之文件上传/下载接口详解
Apr 05 #Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
Python中使用Opencv开发停车位计数器功能
Python采集股票数据并制作可视化柱状图
python疲劳驾驶困倦低头检测功能的实现
Python实现自动玩连连看的脚本分享
Apr 04 #Python
You might like
论建造顺序的重要性
2020/03/04 星际争霸
基于MySQL分区性能的详细介绍
2013/05/02 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
2013/11/21 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
vuex存储token示例
2019/11/11 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
Element Backtop回到顶部的具体使用
2020/07/27 Javascript
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
django框架防止XSS注入的方法分析
2019/06/21 Python
详解python深浅拷贝区别
2019/06/24 Python
python输入多行字符串的方法总结
2019/07/02 Python
解析Python3中的Import
2019/10/13 Python
Pandas实现DataFrame按行求百分数(比例数)
2019/12/27 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
毕业生毕业总结的自我评价范文
2013/11/02 职场文书
授权委托书格式范文
2014/08/02 职场文书
班主任经验交流材料
2014/12/16 职场文书
党员自我评价范文2015
2015/03/03 职场文书
现场施工员岗位职责
2015/04/11 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
2015年公司工作总结
2015/04/25 职场文书
2015年人事科工作总结
2015/04/28 职场文书
失恋33天观后感
2015/06/11 职场文书