阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Python进度条技巧

24次阅读
没有评论

共计 1062 个字符,预计需要花费 3 分钟才能阅读完成。

导读 在当下 Python 圈子中 tqdm 已然是非常流行的进度条库,可以帮助我们为任何具有循环迭代过程的代码逻辑添加进度条,从而帮助我们感知代码运行的过程。

随着 tqdm 这几年来的发展迭代,更多更好用的功能加入其中,今天的文章中我就给大家总结了六条非常值得学习的 tqdm 特性。

Python 进度条技巧

1. autonotebook 自动切换进度条风格

用过 tqdm 的朋友们大都知道它可以在常规的终端以及 jupyter 风格的各种编辑器中使用,且在后者中会以更美观的形式进行渲染,而以往我们通常需要在常规的终端里使用 from tqdm import tqdm,在 jupyter 风格的编辑器中使用 from tqdm.notebook import tqdm 来分别导入。

而 tqdm 最近几个版本中引入了实验性质的新特性,使得我们只需要统一通过 from tqdm.autonotebook import tqdm 导入 tqdm,就可以自适应检测不同的运行环境从而自动控制显示:

Python 进度条技巧

2. 延迟渲染进度条

有时候我们希望当循环过程很快就执行完时,可以不打印进度条,毕竟进度条的主要目的是监控长时间运行过程,这时我们就可以给 tqdm() 添加参数 delay 来设置延时的秒数,当循环过程实际运行时长低于 delay 则无需打印多余的迭代过程:

Python 进度条技巧

3. 自定义进度条色彩

通过为 tqdm() 设置参数 colour,可以传入多种常见色彩格式值,这在 jupyter 类编辑器中效果尤为明显:

Python 进度条技巧

4. 自主控制的进度上限

有些情况下,我们传入 tqdm() 的对象在迭代过程中是无法预先计算得到进度上限轮次的,典型如 pandas 中数据框的 itertuples(),这种时候我们就可以利用 total 参数自行预设上限:

Python 进度条技巧

5. 针对 enumerate、zip 和 map 的替代

Python 中除了常规的循环过程以外,还有几种内置函数也具有迭代循环的属性,而 tqdm 为了方便我们对这些非典型的循环过程添加进度条,也单独开发了 tenumerate、tzip 以及 tmap 这三个 API,用于替代 enumerate、zip 和 map:

Python 进度条技巧

6. 设置进度条“用完即逝”

当我们希望为多层循环过程添加进度条监视时,常规的为每一层都直接使用 tqdm(),会导致打印出过多的进度条,反而不利于我们观察进度过程。

而通过使用 tqdm.auto 中的 trange(),我们可以通过设置参数 leave=False,来让我们对应的进度条加载到头就自动消失掉,譬如下面动图中所展示的例子:

Python 进度条技巧

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1062字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中