关于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中实现远程调用(RPC、RMI)简单例子
Apr 28 Python
python获取一组汉字拼音首字母的方法
Jul 01 Python
python图片验证码生成代码
Jul 02 Python
Python pass详细介绍及实例代码
Nov 24 Python
Python爬虫之xlml解析库(全面了解)
Aug 08 Python
python Spyder界面无法打开的解决方法
Apr 27 Python
Pandas实现数据类型转换的一些小技巧汇总
May 07 Python
python中的不可变数据类型与可变数据类型详解
Sep 16 Python
django框架中间件原理与用法详解
Dec 10 Python
python保留小数位的三种实现方法
Jan 07 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
Mar 17 Python
python七种方法判断字符串是否包含子串
Aug 18 Python
如何在Python中妥善使用进度条详解
Apr 05 #Python
Python接口自动化之文件上传/下载接口详解
Apr 05 #Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
Python中使用Opencv开发停车位计数器功能
Python采集股票数据并制作可视化柱状图
python疲劳驾驶困倦低头检测功能的实现
Python实现自动玩连连看的脚本分享
Apr 04 #Python
You might like
Zend公司全球首推PHP认证
2006/10/09 PHP
php中http_build_query 的一个问题
2012/03/25 PHP
解析php中的escape函数
2013/06/29 PHP
页面载入结束自动调用js函数示例
2013/09/23 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
2016/06/12 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
2018/08/09 jQuery
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
基于layPage插件实现两种分页方式浅析
2019/07/27 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
2019/12/23 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
Python 性能优化技巧总结
2016/11/01 Python
Python MD5加密实例详解
2017/08/02 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
python 多进程共享全局变量之Manager()详解
2019/08/15 Python
python 变量初始化空列表的例子
2019/11/28 Python
Python绘图之柱形图绘制详解
2020/07/28 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
美国电视购物HSN官网:HSN
2016/09/07 全球购物
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
新郎父亲婚宴答谢词
2014/01/11 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
中学团支部工作总结
2015/08/13 职场文书
民事纠纷协议书
2016/03/23 职场文书
如何写好一份优秀的工作总结?
2019/06/21 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
golang实现浏览器导出excel文件功能
2022/03/25 Golang