点击上方卡片关注我
设置星标 学习更多技能
在处理大规模数据或执行耗时任务时,常常不知道程序运行到哪一步,还需要等待多久。tqdm是一个轻量级的Python进度条库,能够为循环、迭代器和任何可迭代对象自动添加进度条显示,实时展示任务完成百分比、已用时间、预计剩余时间等信息。
使用pip命令即可完成安装:
pip install tqdm安装完成后,运行以下代码验证:
from tqdm import tqdmimport timefor i in tqdm(range(100)): time.sleep(0.01)如果终端显示了进度条,说明安装成功。
最常见的使用场景是为普通的for循环添加进度条。只需将range()或列表等可迭代对象传入tqdm()函数,就能立即看到实时进度信息,包括已完成的迭代次数、完成百分比、已用时间和预计剩余时间。
from tqdm import tqdmimport time# 为循环添加进度条data = range(1000)for item in tqdm(data, desc="处理中"): time.sleep(0.001) # 模拟耗时操作在某些复杂场景中,需要手动控制进度更新的时机和步长。下面的代码展示如何创建进度条对象并手动更新进度值。这种方式适用于不规则的迭代场景,比如批量下载文件时,每次下载完成后根据文件大小更新不同的进度量。
from tqdm import tqdm# 手动控制进度更新with tqdm(total=100, desc="下载进度") as pbar:for i in range(10):# 执行某个任务 time.sleep(0.1)# 手动更新进度 pbar.update(10) # 每次更新10个单位处理多层循环任务时,tqdm支持嵌套显示多个进度条。下面的示例模拟了批量处理多个文件的场景,外层进度条显示文件处理进度,内层进度条显示单个文件的处理进度。通过position和leave参数可以控制进度条的显示位置和是否保留,确保多层进度条不会相互干扰。
from tqdm import tqdm# 嵌套进度条用于多层循环for i in tqdm(range(5), desc="外层循环", position=0):for j in tqdm(range(100), desc=f"内层 {i}", position=1, leave=False): time.sleep(0.01)tqdm允许用户完全自定义进度条的显示内容和格式。以下代码演示如何使用bar_format参数定制进度信息,可以选择性显示百分比、速率、已用时间等指标。
from tqdm import tqdm# 自定义进度条显示格式for i in tqdm(range(100), bar_format='{l_bar}{bar:30}{r_bar}', ncols=80, colour='green'): time.sleep(0.02)数据科学工作中经常需要对DataFrame进行行级或列级操作。tqdm提供了专门的pandas集成方法,可以为apply、map等操作添加进度条。下面的代码展示如何在DataFrame的apply操作中显示进度,只需调用tqdm.pandas()进行注册,然后使用progress_apply替代原生apply方法即可。
from tqdm import tqdmimport pandas as pd# 注册tqdm到pandastqdm.pandas(desc="数据处理")# 为DataFrame操作添加进度条df = pd.DataFrame({'a': range(1000)})df['b'] = df['a'].progress_apply(lambda x: x ** 2)在多线程或多进程环境下,tqdm能够为每个并发任务创建独立的进度条。下面的示例使用concurrent.futures模块配合tqdm.as_completed()函数,实现了多线程任务的实时进度跟踪。每完成一个任务,进度条就会更新一次,并且可以通过set_description动态显示当前完成的任务信息。
from tqdm import tqdmfrom concurrent.futures import ThreadPoolExecutorimport timedeftask(n): time.sleep(0.1)return n * 2# 多线程任务进度监控with ThreadPoolExecutor(max_workers=4) as executor: results = list(tqdm( executor.map(task, range(50)), total=50, desc="多线程处理" ))tqdm是一个设计精巧、使用简单的Python进度条库,通过极简的API设计,让开发者仅用一行代码就能为程序添加专业的进度显示功能。不仅支持基础的循环迭代,还能应对嵌套循环、并发任务、数据框操作等复杂场景。丰富的自定义选项使其能够适配各种终端环境和显示需求。在数据处理、模型训练、文件操作等耗时任务中,tqdm提供的实时反馈能够显著改善用户体验,帮助开发者更好地掌控程序运行状态。
如果在编程工具充值使用上遇到麻烦,推荐一个牛逼的中转工具!一次性搞定 Codex 、Claude Code和 gemini,内容介绍和付费兑换详见文末阅读原文。
📘 我们整理了一份《AI 编程出海蓝皮书》,汇集了过去几个月团队在出海实战中沉淀下来的核心经验。内容持续更新ing
从需求、工具、部署、收款,到 SEO、推广、引流,一步步带你搞懂普通人也能启动的出海路径。这份资料能帮你快速入门、少踩坑。
扫码或微信搜索 257735添加微信,回复【出海资料】即可免费领取。

网站SEO必备工具:Google Search Console 使用教程