关于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性能优化技巧
Mar 09 Python
Python的collections模块中namedtuple结构使用示例
Jul 07 Python
Python中格式化format()方法详解
Apr 01 Python
Python制作词云的方法
Jan 03 Python
基于DataFrame筛选数据与loc的用法详解
May 18 Python
Python Django 简单分页的实现代码解析
Aug 21 Python
18个Python脚本可加速你的编码速度(提示和技巧)
Oct 17 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
Oct 24 Python
Python中如何引入第三方模块
May 27 Python
使用OpenCV对车道进行实时检测的实现示例代码
Jun 19 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
Jun 03 Python
关于 Python json中load和loads区别
Nov 07 Python
如何在Python中妥善使用进度条详解
Apr 05 #Python
Python接口自动化之文件上传/下载接口详解
Apr 05 #Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
Python中使用Opencv开发停车位计数器功能
Python采集股票数据并制作可视化柱状图
python疲劳驾驶困倦低头检测功能的实现
Python实现自动玩连连看的脚本分享
Apr 04 #Python
You might like
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
一些花式咖啡的配方
2021/03/03 冲泡冲煮
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
批量实现面向对象的实例代码
2013/07/01 Javascript
全面了解js中的script标签
2016/07/04 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
vue中本地静态图片路径写法
2018/03/06 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
解决layui数据表格Date日期格式的回显Object的问题
2019/09/19 Javascript
js canvas实现星空连线背景特效
2019/11/01 Javascript
使用Bootstrap做一个朝代历史表
2019/12/10 Javascript
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
python中星号变量的几种特殊用法
2016/09/07 Python
Python实现的科学计算器功能示例
2017/08/04 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
python通过matplotlib生成复合饼图
2020/02/06 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
借助HTML5 Canvas API制作一个简单的猜字游戏
2016/03/25 HTML / CSS
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
《画》教学反思
2014/04/14 职场文书
2014年教研活动总结范文
2014/04/26 职场文书
2014最新实习证明模板
2014/10/02 职场文书
结婚老公保证书
2015/02/26 职场文书
2015年化验员工作总结
2015/04/10 职场文书
演讲稿之开卷有益
2019/08/07 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫