python中tqdm库如何显示进度条?

tqdm是Python中用于显示循环和数据处理进度的轻量级库,通过pip install tqdm安装后,可将tqdm包装在range或列表等可迭代对象上实现实时进度条;支持用desc参数添加任务描述,结合pandas使用tqdm.pandas()启用progress_apply功能,还可通过手动创建tqdm实例并调用update()方法实现复杂场景下的进度控制,适用于终端和Jupyter Notebook环境。

tqdm 是 Python 中一个轻量级且易用的进度条库,可以为循环、数据处理等耗时操作添加实时进度显示。使用它能让程序运行过程更直观。

安装 tqdm

如果尚未安装,可通过 pip 安装:

pip install tqdm

在 for 循环中显示进度条

最常见用法是包装一个可迭代对象,比如 range 或列表:

from tqdm import tqdm
import time

for i in tqdm(range(100)):
time.sleep(0.01) # 模拟耗时操作

运行后会在终端显示动态进度条,包含已完成比例、进度条图形、已用时间、预估剩余时间等信息。

自定义进度条描述

可以添加描述来说明当前任务内容:

for i in tqdm(range(50), desc="处理数据"): time.sleep(0.02)

“desc”参数会显示在进度条前,帮助识别不同任务。

结合 pandas 使用(可选)

tqdm 还支持与 pandas 的 apply 操作集成:

from tqdm import tqdm
tqdm.pandas() # 启用 pandas 进度条

df['new_col'] = df['old_col'].progress_apply(lambda x: x ** 2)

使用 progress_apply 替代 apply,即可看到进度条。

手动控制进度条(高级用法)

对于非循环或复杂逻辑,可手动更新进度:

pbar = tqdm(total=100)
for i in range(10): time.sleep(0.1) pbar.update(10) # 每次更新10个单位
pbar.close()

通过 update() 手动增加进度,适合异步或分块处理场景。

基本上就这些常用方式。tqdm 能自动适配环境,在 Jupyter Notebook 中也会有良好显示效果,不复杂但容易忽略细节。