盘一盘 Python 进度库:tqdm的自定义能力

开发
今天我们会罗列几个关于 tqdm 常见自定义场景。并尝试对动态更新描述信息做简单的封装,积累一些通用模块。

近工作需要写一些耗时的 python 小脚本,普通黑窗(控制台)执行即可。但没有进度可不行呀。于是用一些常见的进度提示库- tqdm 。

今天我们会罗列几个关于 tqdm 常见自定义场景。并尝试对动态更新描述信息做简单的封装,积累一些通用模块。

pip 安装:

pip install tqdm

简单用法很简单:

控制台显示:

有人可能会觉得默认的外观太普通了。 tqdm 提供了丰富的自定义选项,可以让你根据不同的需求调整进度条的外观和行为,接下来看看他的自定义能力。

tqdm 函数参数:

  • desc :进度条的描述信息。
  • total :总迭代次数(默认为  None ,会自动检测)。
  • leave :是否在完成时保留进度条(默认为  True )。
  • ncols :进度条的最大宽度(列数)。
  • ascii :是否使用 ASCII 字符显示进度条(默认为  False )。
  • bar_format :自定义进度条的格式字符串。
  • colour :设置进度条的颜色。

1. 基本自定义

  • desc="Processing" :设置进度条的描述信息。
  • ascii=False :不使用 ASCII 字符显示进度条。这个参数默认就是 False ,如果设置为 True,进度条就变成 #
  • ncols=75 :设置进度条的最大宽度为 75 列。

第一个是 ascii = False。第二个是 ascii = True

2. 自定义进度条格式

你可以通过 bar_format 参数来自定义进度条的格式。并且有一些信息只有 tqdm 才"知道"的信息,因此,它内置了一些占位符:

  • {l_bar} :左边的进度条部分。
  • {bar} :进度条本身。
  • {r_bar} :右边的信息部分。
  • {n} :当前迭代次数。
  • {total} :总迭代次数。
  • {percentage} :百分比。
  • {rate} :每秒迭代次数。
  • {elapsed} :已用时间。
  • {remaining} :剩余时间。

3. 设置进度条颜色

你可以通过 colour 参数来设置进度条的颜色。 colour 可以接受多种颜色名称或 RGB 值。

5. 动态更新描述信息

这个是最常用的功能,你可以在循环中动态更新进度条的描述信息。

  • 行5: tqdm(total=100, desc="动态更新描述信息") :创建一个进度条对象,并设置总迭代次数为 100。 with  语句确保在退出块时自动关闭进度条。
  • 行7-17:在特定的迭代次数( i == 20 ,  i == 40 ,  i == 60 ,  i == 80 )时,调用  pbar.set_description()  方法来更新进度条的描述信息。
  • pbar.update(1) :每次迭代增加进度条 1 个单位。这是必须的,否则进度条不会更新。

上面的写法侵入性太强了,一大堆关于进度的代码混到主循环里面。我们尝试做一些简单封装。

先看看封装后的使用代码有哪些改进:

  • 行4:使用  with  语法创建和使用  CustomTqdm  对象。当退出  with  语句块时, __exit__  方法会自动调用  pbar.close()  关闭进度条。
  • 行6-9: 在循环之前,配置不同的更新点。避免循环中出现过多的进度相关代码
  • 行13:在循环中,每次迭代调用  pbar.update(1)  更新进度条。

看看实现代码:

责任编辑:赵宁宁 来源: 数据大宇宙
相关推荐

2025-01-08 17:20:00

pytho数据分组itertools

2022-03-25 13:45:37

黑客网络攻击数据泄露

2012-07-11 13:32:11

虚拟化

2020-06-05 15:48:26

网络安全技术漏洞

2024-01-08 08:30:30

接口线程模型

2024-07-10 10:04:48

2012-08-21 15:24:07

腾讯App

2015-03-02 11:23:51

2021-10-29 09:55:20

人工神经网络

2012-07-25 11:29:41

2010-04-29 11:23:08

Apple

2021-01-07 09:35:49

Pythontqdm进度

2020-12-14 13:32:40

Python进度条参数

2015-09-23 11:43:00

小米副卡虚拟运营商

2017-05-18 12:40:44

AlphaGoAI柯洁

2021-09-06 14:58:23

鸿蒙HarmonyOS应用

2017-08-02 17:15:05

互联网

2017-03-14 15:09:18

AndroidView圆形进度条

2023-12-18 14:31:51

技术大模型人机交互
点赞
收藏

51CTO技术栈公众号