1 简介
tqdm是Python中专门用于进度条美化的模块,通过在非while的循环体内嵌入tqdm,可以得到一个能更好展现程序运行过程的提示进度条,本文就将针对tqdm的基本用法进行介绍。
2 基本用法
tqdm:
tqdm中的tqdm()是实现进度条美化的基本方法,在for循环体中用tqdm()包裹指定的迭代器或range()即可,下面是两个简单的例子:
基础迭代
示例
from tqdm import tqdmfrom time import sleeptext = ""for char in tqdm(["a", "b", "c", "d"]):sleep(0.25)text = text + char
示例
trange:
作为tqdm(range())的简洁替代,如下例:
from tqdm import trangefor i in trange(100):sleep(0.01)
手动调整
使用with语句手动控制tqdm()更新:
with tqdm(total=100) as pbar:for i in range(10):sleep(0.1)pbar.update(10)
示例
data_loader = tqdm(data_loader)for step, data in enumerate(data_loader):images, labels = datapred = model(images.to(device))loss = loss_function(pred, labels.to(device))loss.backward()mean_loss = (mean_loss * step + loss.detach()) / (step + 1) # update mean lossesdata_loader.desc = "[epoch {}] mean loss {}".format(epoch, round(mean_loss.item(), 3))
3 控制换行数量
tqdm(validate_loader,ncols=8000)
模块中使用
也许tqdm最奇妙的用法是在脚本中或在命令行中。简单地在管道之间插入tqdm(或python -m tqdm)将通过所有stdin到stdout,同时将progress打印到stderr。
下面的示例演示了计算当前目录中所有Python文件的行数,其中包括计时信息。
注意,也可以指定tqdm的常用参数。
其他更多请见参考文献
