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)来更新进度条的进度。