关于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抓取网页正文的源码
Jun 11 Python
python比较2个xml内容的方法
May 11 Python
在Lighttpd服务器中运行Django应用的方法
Jul 22 Python
解决python selenium3启动不了firefox的问题
Oct 13 Python
Python 中Django安装和使用教程详解
Jul 03 Python
Python实现制度转换(货币,温度,长度)
Jul 14 Python
python基于socket进行端口转发实现后门隐藏的示例
Jul 25 Python
wxPython实现画图板
Aug 27 Python
Python unittest装饰器实现原理及代码
Sep 08 Python
Scrapy爬虫文件批量运行的实现
Sep 30 Python
Python为何不支持switch语句原理详解
Oct 21 Python
python3定位并识别图片验证码实现自动登录功能
Jan 29 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产生动态的影像图
2006/10/09 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
2016/11/29 PHP
php从数据库中读取特定的行(实例)
2017/06/02 PHP
php实现的rc4加密解密类定义与用法示例
2018/08/16 PHP
Javascript模板技术
2007/04/27 Javascript
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
编写兼容IE和FireFox的脚本
2009/05/18 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
原生js实现随机点名
2020/07/05 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
python定时器使用示例分享
2014/02/16 Python
python中正则表达式的使用方法
2018/02/25 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
python创建学生管理系统
2019/11/22 Python
Python 过滤错误log并导出的实例
2019/12/26 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
幼儿教育感言
2014/02/05 职场文书
降消项目实施方案
2014/03/30 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
2019各种承诺书范文
2019/06/24 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python