关于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 11 Python
使用Python生成随机密码的示例分享
Feb 18 Python
使用Python保存网页上的图片或者保存页面为截图
Mar 05 Python
深入解析Python中的list列表及其切片和迭代操作
Mar 13 Python
python解析html提取数据,并生成word文档实例解析
Jan 22 Python
python opencv之SURF算法示例
Feb 24 Python
基于pycharm导入模块显示不存在的解决方法
Oct 13 Python
python训练数据时打乱训练数据与标签的两种方法小结
Nov 08 Python
Django urls.py重构及参数传递详解
Jul 23 Python
详解PyTorch中Tensor的高阶操作
Aug 18 Python
pycharm解决关闭flask后依旧可以访问服务的问题
Apr 03 Python
Django权限控制的使用
Jan 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
php SQL之where语句生成器
2009/03/24 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
destoon实现底部添加你是第几位访问者的方法
2014/07/15 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
javascript 程序库的比较(一)之DOM功能
2010/04/07 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
jquery 操作表格实现代码(多种操作打包)
2011/03/20 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
2019/04/09 Javascript
基于vue.js实现购物车
2020/01/15 Javascript
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
vue实现购物车的小练习
2020/12/21 Vue.js
python赋值操作方法分享
2013/03/23 Python
python中base64加密解密方法实例分析
2015/05/16 Python
python 异常处理总结
2016/10/18 Python
python如何实现数据的线性拟合
2019/07/19 Python
TensorFlow索引与切片的实现方法
2019/11/20 Python
python飞机大战 pygame游戏创建快速入门详解
2019/12/17 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
大学生第一学年自我鉴定
2014/09/12 职场文书
平面设计师岗位职责
2014/09/18 职场文书
立项申请报告范本
2015/05/15 职场文书
党支部半年考察意见
2015/06/01 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书
聘任书范文大全
2015/09/21 职场文书