关于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初学者的一些编程技巧
Apr 03 Python
Python 字典与字符串的互转实例
Jan 13 Python
mac系统安装Python3初体验
Jan 02 Python
《与孩子一起学编程》python自测题
May 27 Python
Python中修改字符串的四种方法
Nov 02 Python
使用Python的networkx绘制精美网络图教程
Nov 21 Python
python 实现turtle画图并导出图片格式的文件
Dec 07 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
Mar 08 Python
python简单实现最大似然估计&scipy库的使用详解
Apr 15 Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 Python
pyqt5 textEdit、lineEdit操作的示例代码
Aug 12 Python
详细总结Python常见的安全问题
May 21 Python
如何在Python中妥善使用进度条详解
Apr 05 #Python
Python接口自动化之文件上传/下载接口详解
Apr 05 #Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
Python中使用Opencv开发停车位计数器功能
Python采集股票数据并制作可视化柱状图
python疲劳驾驶困倦低头检测功能的实现
Python实现自动玩连连看的脚本分享
Apr 04 #Python
You might like
Blitz templates 最快的PHP模板引擎
2010/04/06 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
js 获取服务器控件值的代码
2010/03/05 Javascript
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
ie8模式下click无反应点击option无反应的解决方法
2014/10/11 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
了解JavaScript表单操作和表单域
2019/05/27 Javascript
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
介绍Python中的__future__模块
2015/04/27 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
Python递归函数实例讲解
2019/02/27 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
pandas按行按列遍历Dataframe的几种方式
2019/10/23 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
实习教师个人的自我评价
2013/11/08 职场文书
校庆接待方案
2014/03/18 职场文书
《分一分》教学反思
2014/04/13 职场文书
产品售后服务承诺书
2014/05/21 职场文书
幼儿园大班区域活动总结
2014/07/09 职场文书
社会发展项目建议书
2014/08/25 职场文书
医德医风个人总结
2015/02/28 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
Python中time与datetime模块使用方法详解
2022/03/31 Python
angular异步验证器防抖实例详解
2022/03/31 Javascript
python实现一个简单的贪吃蛇游戏附代码
2022/06/28 Python