关于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中无限元素列表的实现方法
Aug 18 Python
简单介绍Python下自己编写web框架的一些要点
Apr 29 Python
详解使用Python处理文件目录的相关方法
Oct 16 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
Nov 09 Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 Python
python图片验证码生成代码
Jul 02 Python
python2.7到3.x迁移指南
Feb 01 Python
python如何求解两数的最大公约数
Sep 27 Python
python 自动批量打开网页的示例
Feb 21 Python
python从入门到精通 windows安装python图文教程
May 18 Python
解决Tensorflow占用GPU显存问题
Feb 03 Python
详解用Python调用百度地图正/逆地理编码API
Jul 02 Python
如何在Python中妥善使用进度条详解
Apr 05 #Python
Python接口自动化之文件上传/下载接口详解
Apr 05 #Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
Python中使用Opencv开发停车位计数器功能
Python采集股票数据并制作可视化柱状图
python疲劳驾驶困倦低头检测功能的实现
Python实现自动玩连连看的脚本分享
Apr 04 #Python
You might like
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
PHP数组传递是值传递而非引用传递概念纠正
2013/01/31 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
jQuery ajax BUG:object doesn't support this property or method
2010/07/06 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
使用闭包对setTimeout进行简单封装避免出错
2013/07/10 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
Bootstrap页面标题Page Header的实现方法
2017/03/22 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
layui表格设计以及数据初始化详解
2019/10/26 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
[56:18]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python中函数默认值使用注意点详解
2016/06/01 Python
Python使用defaultdict读取文件各列的方法
2017/05/11 Python
python自动裁剪图像代码分享
2017/11/25 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
Django如何实现上传图片功能
2019/08/16 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
约瑟夫·特纳男装:Joseph Turner
2017/10/10 全球购物
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
小组合作学习反思
2014/02/18 职场文书
征婚广告词
2014/03/17 职场文书
《去年的树》教学反思
2014/04/11 职场文书
银行求职自荐书
2014/06/25 职场文书
生日答谢词
2015/01/05 职场文书
学困生帮扶工作总结
2015/08/13 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
2021/04/13 HTML / CSS
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python
JavaScript数组 几个常用方法总结
2021/11/11 Javascript
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android