Python编程中处理耗时任务总是让人心急如焚,瞎等着不是个事儿,要是能实时看到任务进度该多好。TQDM这个神器就是专门解决这个问题的!它不仅能帮你显示进度条,还能估算剩余时间,显示处理速度,简直是处理大规模数据时的得力助手。
基本使用方法
TQDM的使用超简单,只要把它跟迭代对象组合在一起就行了。来看个最基础的例子:
from tqdm import tqdm
import time
# 模拟一个耗时任务
for i in tqdm(range(100)):
time.sleep(0.1) # 假装在处理数据
运行这段代码,你就能看到一个炫酷的进度条在命令行里跑起来了。它会显示当前进度、处理速度,还有预计剩余时间,一目了然!
进阶玩法
有时候咱们处理的数据可能是列表或其他可迭代对象,TQDM一样能搞定:
from tqdm import tqdm
# 处理列表数据
data = ['老王', '老李', '老张', '老刘']
for name in tqdm(data, desc='处理数据中'):
time.sleep(1) # 模拟数据处理
小贴士:
desc参数可以设置进度条前面显示的文字描述
进度条默认显示百分比,也可以通过unit参数自定义单位
不想看到进度条?disable=True就能关掉它
手动更新进度
有些场景下需要手动控制进度条,TQDM也考虑到了:
from tqdm import tqdm
total = 100
with tqdm(total=total) as pbar:
for i in range(10):
# 干点事
time.sleep(1)
# 更新进度条
pbar.update(10) # 每次更新10个单位
玩转样式
要是觉得默认的进度条太朴素,还能给它换身行头:
from tqdm import tqdm
# 自定义进度条样式
for i in tqdm(range(100),
desc='下载中',
ncols=80, # 进度条总长度
colour='green', # 颜色
bar_format='{l_bar}{bar}| {n_fmt}/{total_fmt} [{elapsed}<{remaining}]'):
time.sleep(0.1)
小贴士:
colour参数支持多种颜色,比如red、green、blue等
bar_format可以完全自定义进度条格式
ncols控制进度条在终端中的显示宽度
实战应用
在实际项目中,TQDM经常用来显示文件处理进度:
from tqdm import tqdm
import os
def process_files(file_list):
results = []
for file in tqdm(file_list, desc='处理文件'):
# 假装在处理文件
results.append(size)
time.sleep(0.5)
return results
还有个特别实用的场景是在训练机器学习模型时显示训练进度:
from tqdm import tqdm
import numpy as np
def train_model(epochs):
for epoch in tqdm(range(epochs), desc='训练进度'):
time.sleep(0.2)
小贴士:
处理大量文件时记得用with语句管理资源
进度条也会占用一些系统资源,在性能特别敏感的场景要谨慎使用
把TQDM用起来,瞬间就能让你的程序变得高大上!它的性能开销很小,使用起来也超级简单。再也不用写那些丑丑的打点计数了,让你的程序既实用又好看。
领取专属 10元无门槛券
私享最新 技术干货