tqdm
是一个用于 Python 的快速、可扩展的进度条库。它可以在长循环中提供即时的进度反馈,帮助开发者了解代码运行的进度和剩余时间。tqdm
这个名字来源于阿拉伯语单词 “taqaddum”,意为 “进展”,同时也与西班牙语中的 “te quiero demasiado”(我非常爱你)谐音。
主要特点
- 简单易用:只需在现有循环外层包裹
tqdm
,即可显示进度条。 - 灵活性:支持多种循环类型,包括
for
循环、while
循环,以及自定义迭代器。 - 可定制性:可以自定义进度条的格式、颜色、描述信息等。
- 多线程/多进程支持:可以在多线程或多进程环境中使用。
- 轻量级:对性能影响极小,几乎不会增加额外的运行时间。
安装
通过 pip
安装 tqdm
:
pip install tqdm
基本用法
基本的 tqdm
使用示例:
1. 在 for
循环中使用
from tqdm import tqdm
import time
for i in tqdm(range(100)):
time.sleep(0.1) # 模拟一些耗时操作
2. 在 enumerate
中使用
from tqdm import tqdm
import time
for i, item in tqdm(enumerate(range(100))):
time.sleep(0.1) # 模拟一些耗时操作
3. 自定义描述信息
from tqdm import tqdm
import time
for i in tqdm(range(100), desc="Processing"):
time.sleep(0.1) # 模拟一些耗时操作
4. 在多线程中使用
from tqdm import tqdm
from concurrent.futures import ThreadPoolExecutor
import time
def task(n):
time.sleep(0.1) # 模拟一些耗时操作
with ThreadPoolExecutor(max_workers=5) as executor:
list(tqdm(executor.map(task, range(100)), total=100))
高级用法
1. 手动更新进度条
from tqdm import tqdm
pbar = tqdm(total=100)
for i in range(10):
# 模拟一些耗时操作
pbar.update(10)
pbar.close()
2. 嵌套进度条
from tqdm import tqdm
import time
for i in tqdm(range(5), desc="Outer Loop"):
for j in tqdm(range(100), desc="Inner Loop", leave=False):
time.sleep(0.01)
tqdm
是一个非常实用的库,特别适合在需要长时间运行的循环中使用,以便实时监控进度。简单易用性和高度可定制性使其成为 Python 开发者工具箱中的一个重要工具。