关于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爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 Python
跟老齐学Python之用Python计算
Sep 12 Python
Python入门篇之字典
Oct 17 Python
Python处理RSS、ATOM模块FEEDPARSER介绍
Feb 18 Python
Eclipse中Python开发环境搭建简单教程
Mar 23 Python
Python学生成绩管理系统简洁版
Apr 05 Python
Python Logging 日志记录入门学习
Jun 02 Python
Python 查找list中的某个元素的所有的下标方法
Jun 27 Python
通过shell+python实现企业微信预警
Mar 07 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
Flask框架模板渲染操作简单示例
Jul 31 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 动态随机生成验证码类代码
2010/04/09 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
繁简字转换功能
2006/07/19 Javascript
JS日历 推荐
2006/12/03 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
详解JavaScript中数组的reduce方法
2016/12/02 Javascript
js判断手机系统是android还是ios
2017/03/07 Javascript
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
node使用Koa2搭建web项目的方法
2017/10/17 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
JavaScript动态生成表格的示例
2020/11/02 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
详解Python中映射类型(字典)操作符的概念和使用
2015/08/19 Python
浅谈python新手中常见的疑惑及解答
2016/06/14 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
使用SVG实现提示框功能的示例代码
2020/06/05 HTML / CSS
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
教师节寄语2015
2015/03/23 职场文书
2015年前台接待工作总结
2015/05/04 职场文书
法人身份证明书
2015/06/18 职场文书
小组口号霸气押韵
2015/12/24 职场文书
小学班级口号大全
2015/12/25 职场文书
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记