tqdm 使用指南

tqdm 是一个快速,可扩展的 Python 进度条库,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)

使用 tqdm 非常简单,下面是一个基础的使用示例:

1
2
3
4
5
from tqdm import tqdm
import time

for i in tqdm(range(100)):
time.sleep(0.01) # 模拟任务

在上述代码中,range(100) 是一个迭代器,包含了100个元素。通过 tqdm(range(100)),我们将这个迭代器传递给了 tqdm,这样 tqdm 就可以在每次迭代时更新进度条。time.sleep(0.01) 用来模拟实际的任务,每次迭代我们让程序暂停0.01秒。

当你运行这段代码时,你将会看到一个动态更新的进度条,显示了当前的进度、已经过去的时间、预计剩余的时间以及迭代的速率。

tqdm 是非常灵活的,可以定制进度条的许多方面,包括进度条的长度、进度条的样式、是否包括时间信息等等。你可以参考 tqdm 的官方文档 了解更多的用法和选项。

这里有一个稍微复杂一些的 tqdm 示例。在这个示例中,我们将使用 tqdm 创建一个嵌套的进度条,用于跟踪一个两层循环的进度:

1
2
3
4
5
6
7
8
from tqdm import tqdm
import time

# 外部循环
for i in tqdm(range(10), desc="Outer loop"):
# 内部循环
for j in tqdm(range(100), desc="Inner loop", leave=False):
time.sleep(0.01) # 模拟任务

在这个示例中,我们使用了 tqdmdesc 参数来给每个进度条添加一个描述,使其更容易区分。同时,我们还为内部循环的 tqdm 设置了 leave=False,这意味着当内部循环完成后,其进度条将不会保留在输出中。这可以防止在运行嵌套循环时输出被过多的进度条占据。

运行这段代码,你将会看到两个进度条:一个用于跟踪外部循环的进度,一个用于跟踪内部循环的进度。当内部循环完成一个迭代并开始新的迭代时,其进度条将被清除并重新开始。