关于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制作爬虫爬取京东商品评论教程
Dec 16 Python
Python中Selenium模拟JQuery滑动解锁实例
Jul 26 Python
python实现机器人行走效果
Jan 29 Python
python将字符串以utf-8格式保存在txt文件中的方法
Oct 30 Python
详解python解压压缩包的五种方法
Jul 05 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
Jul 09 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
keras 权重保存和权重载入方式
May 21 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 Python
详解python命令提示符窗口下如何运行python脚本
Sep 11 Python
python 基于UDP协议套接字通信的实现
Jan 22 Python
python 实现德洛内三角剖分的操作
Apr 22 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 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
PHP获取数组中重复最多的元素的实现方法
2014/11/11 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
Django与JS交互的示例代码
2017/08/23 Python
python使用fork实现守护进程的方法
2017/11/16 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
在python中安装basemap的教程
2018/09/20 Python
python写日志文件操作类与应用示例
2019/07/01 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
印度在线内衣和时尚目的地:Zivame
2017/09/28 全球购物
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
挂科检讨书范文
2014/02/20 职场文书
网站创业计划书
2014/04/30 职场文书
煤矿安全协议书
2014/08/20 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers