关于Python中进度条的六个实用技巧分享
作者:费弗里 发布时间:2023-07-03 09:58:39
1 简介
费老师我在几年前写过的一篇文章(https://www.jb51.net/article/243348.htm)中,介绍过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,就可以自适应检测不同的运行环境从而自动控制显示:
2.2 延迟渲染进度条
有时候我们希望当循环过程很快就执行完时,可以不打印进度条,毕竟进度条的主要目的是监控长时间运行过程,这时我们就可以给tqdm()
添加参数delay来设置延时的秒数,当循环过程实际运行时长低于delay则无需打印多余的迭代过程:
2.3 自定义进度条色彩
通过为tqdm()
设置参数colour,可以传入多种常见色彩格式值,这在jupyter类编辑器中效果尤为明显:
2.4 自主控制的进度上限
有些情况下,我们传入tqdm()
的对象在迭代过程中是无法预先计算得到进度上限轮次的,典型如pandas中数据框的itertuples()
,这种时候我们就可以利用total参数自行预设上限:
2.5 针对enumerate、zip和map的替代
Python中除了常规的循环过程以外,还有几种内置函数也具有迭代循环的属性,而tqdm为了方便我们对这些非典型的循环过程添加进度条,也单独开发了tenumerate、tzip以及tmap这三个API,用于替代enumerate、zip和map:
2.6 设置进度条“用完即逝”
当我们希望为多层循环过程添加进度条监视时,常规的为每一层都直接使用tqdm()
,会导致打印出过多的进度条,反而不利于我们观察进度过程。
而通过使用tqdm.auto
中的trange()
,我们可以通过设置参数leave=False
,来让我们对应的进度条加载到头就自动消失掉,譬如下面动图中所展示的例子:
来源:https://www.cnblogs.com/feffery/p/16099169.html


猜你喜欢
- 一般来说,使用线程有两种模式, 一种是创建线程要执行的函数, 把这个函数传递进Thread对象里,让它来执行. 另一种是直接从Thread继
- 微信小程序保存图片到相册可以分成两种:一种是保存网络图片,一种是保存本地图片保存网络图片:var url = '网络图片路径'
- WEB标准化之前的互联网是TABLE布局的天下,但随着互联网的高速发展,TABLE布局已经不能满足千变万化的页面所来来的更新压力和服务器压力
- 概述从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类
- 微信小程序可滑动月日历组件此日历可进行左右滑动,展示签到打卡信息,和大家分享一下。如果样式变形,请检查是否有共用样式起冲突展示一下效果图在c
- 从这一章开始,将进入 PPT 文件的自动化操作。关于 PPT 自动化操作所要实现的目的依然很简单。包括 “PPT的创建&
- 前言作为Web开发人员,在 Web浏览器中存储数据以改善用户体验和提升Web应用程序性能是非常常见的。在大多数情况下,可供我们使用就是Loc
- 背景今天突然想到之前被要求做同性质银行的数据分析。妈耶!十几个银行,每个银行近5年的财务数据,而且财务报表一般都是 pdf 的,我们将 pd
- 项目需要,做一个和今日头条一样的导航栏,可以横行滚动,幸好再weui里面看到了类似的例子地址:https://weui.shanliwawa
- 本文实例讲述了Python操作Mongodb数据库的方法。分享给大家供大家参考,具体如下:一 导入 pymongofrom pymongo
- 昨天晚些时候微信团队发布了微信小程序开发者工具、微信小程序开发文档和微信小程序设计指南,全新的开发者工具,集成了开发调试、代码编辑及程序发布
- 自动依赖注入在 AbpBase.Web 的 AbpBaseWebModule 中,添加一个函数:此函
- 前段时间嗷嗷有发过"好玩的放大镜效果",今天看了下,发现还有简单的方法也能够实现,即利用内外补丁的调整。有兴趣的可以在琢
- 问题描述:被搜索名字为:andy这时搜索andy正常,但是搜索a就搜不到。解决办法,在索引配置文件中的index中添加min_infix_l
- 本文研究的主要是Python编程求质数实例,选取了几个数进行了测试,具体如下。定义:质数又称素数。一个大于1的自然数,除了1和它自身外,不能
- TF-IDF(term frequency–inverse document frequency)是一种用于信息检索(information
- 任务1、 Mini计算器看出来错误了吗,哈哈哈哈哈哈,那三个点自己加的,本质应该是函数折叠完整的代码:ef calc(a,b,op):? ?
- 在python2.x中 ,异常是这样的处理的,异常基类后面加一个逗号“ ,” 然后跟着异常类型import tracebackt
- 前言Javascript闭包在学习过程中一般较难理解,本文从什么是闭包,常见闭包示例,闭包作用,闭包应用及闭包问题等方面来介绍闭包,希望能给
- 前言使用 requests进行爬取、BeautifulSoup进行数据提取。主要分成两步: 第一步是解析图书列表页,并解析出里面的图书详情页