tqdm
(全称“tqdm: A Fast, Extensible Progress Bar for Python and CLI”,意为“快速、可扩展的Python和CLI进度条”)是一个用于快速添加进度条的Python库。它非常轻量级,易于使用,并且支持多种迭代环境。
使用tqdm
的基本方式是在你需要添加进度条的迭代器上调用tqdm()
函数。
- from tqdm import tqdm
- import time
-
- from tqdm import tqdm
- import time
-
- # 创建一个简单的循环来模拟长时间运行的任务
- for i in tqdm(range(100)): # 使用tqdm包装range迭代器
- # 在每次循环时,暂停1秒以模拟耗时的操作
- time.sleep(1) # 模拟耗时操作
-
- # 输出:
- # 0%| | 0/100 [00:00, ?it/s]
- # ... (进度条会逐步增加)
- # 100%|██████████| 100/100 [01:41<00:00, 1.01s/it]
左边33秒表示已运行时间,右边1:07表示预计运行剩余时间
tqdm
函数接受多个参数来定制进度条的外观和行为:
iterable
:必需的参数,表示需要添加进度条的迭代器。desc
:进度条描述信息,默认为空字符串。total
:迭代器的总长度,如果iterable
是None
或不支持len()
函数,则需要手动指定。ncols
:进度条的总宽度,默认为80个字符。unit
:进度条单位,默认为'it'(表示迭代次数)。unit_scale
:根据迭代次数自动调整单位,如True、1000表示达到1000时,单位会从'it'变为'k'。mininterval
:进度条更新的最小时间间隔,单位为秒,默认为0.1秒。ascii
:如果设置为True,则使用ASCII字符来绘制进度条,默认为False。- from tqdm import tqdm
- import time
-
- # 创建一个进度条,描述为“Loading data”,并设置总长度为100
- with tqdm(total=100, desc="Loading data", ncols=100) as pbar:
- for i in range(100):
- # 模拟耗时操作
- time.sleep(0.01)
- # 更新进度条
- pbar.update(1)
-
- # 使用上下文管理器(with语句)可以确保进度条在完成后正确关闭
- # 输出:
- # Loading data: 0%| | 0/100 [00:00, ?it/s]
- # ... (进度条会逐步增加)
- # Loading data: 100%|██████████| 100/100 [00:01<00:00, 99.88it/s]
在这个示例中,我们使用with
语句来创建一个进度条上下文,这样可以确保在循环结束后自动关闭进度条。我们还设置了desc
参数来自定义进度条的描述信息,并使用了ncols
参数来设置进度条的总宽度。在每次循环中,我们使用pbar.update(1)
来更新进度条的进度。