关于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和OpenCV库将URL转换为OpenCV格式的方法
Mar 27 Python
Python实现查找系统盘中需要找的字符
Jul 14 Python
python去除拼音声调字母,替换为字母的方法
Nov 28 Python
Python基础之循环语句用法示例【for、while循环】
Mar 23 Python
用python求一重积分和二重积分的例子
Dec 06 Python
pandas实现将日期转换成timestamp
Dec 07 Python
如何基于Python实现电子邮件的发送
Dec 16 Python
浅谈django不使用restframework自定义接口与使用的区别
Jul 15 Python
Python从文件中读取数据的方法步骤
Nov 18 Python
pytorch通过训练结果的复现设置随机种子
Jun 01 Python
请求模块urllib之PYTHON爬虫的基本使用
Apr 08 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
Apr 24 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图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
详解js异步文件加载器
2016/01/24 PHP
PHP图像识别技术原理与实现
2016/10/27 PHP
PHP类的自动加载机制实现方法分析
2019/01/10 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
显示、隐藏密码
2006/07/01 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
2011/09/17 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
js print打印网页指定区域内容的简单实例
2016/11/01 Javascript
vue不通过路由直接获取url中参数的方法示例
2017/08/24 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
在vue组件中使用axios的方法
2018/03/16 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
python 中的列表生成式、生成器表达式、模块导入
2019/06/19 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
详解Python 循环嵌套
2020/07/09 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
开工庆典邀请函范文
2014/01/16 职场文书
绩效工资实施方案
2014/03/15 职场文书
大学开学计划书
2014/04/30 职场文书
旷课检讨书范文
2014/10/30 职场文书
离婚上诉状范文
2015/05/23 职场文书
家长通知书家长意见
2015/06/03 职场文书
单位工作证明范本
2015/06/15 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
mongodb清除连接和日志的正确方法分享
2021/09/15 MongoDB