【码海钩沉】定制你的Python进度条---tqdm库

1,346 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情

这个专栏旨在介绍一些在学习开发过程中的一些小工具 平时训练模型的时候可能会纠结于如何展示训练的进度 这次介绍的是一个用于可视化Python中循环迭代进度的一个库-tqdm

预览进度条样式

from tqdm import tqdm, trange
for i in tqdm(range(int(1e8))):
	pass

效果如下:

基本用法

这个库的核心方法就是tqdm,传入一个迭代器,它可以装饰这个迭代器,返回一个带有进度条显示功能的迭代器

例如:传入一个tqdm(range(5)),这个函数会返回一个带有进度条的range(5)迭代器;tqdm库将tqdm(range())封装成了一个函数trange(),即tqdm(range(5))等价于trange(5)

from tqdm import tqdm, trange
for i in trange(int(1e8)):
	pass

效果如下:

自定义进度条

tqdm函数(或trange)中添加参数以自定义进度条样式:

添加描述---desc

在进度条前加入一段字符串描述

from tqdm import tqdm, trange
for i in trange(int(1e8), desc="MyCustomBar"):
	pass

效果如下:

迭代总数---total

设定进度条总次数,需要注意的是,total的值必须大于等于迭代次数,否则进度条将不会显示

from tqdm import tqdm, trange  
for i in trange(int(1e5), total=1e6):  
    pass

效果如下:

迭代初始值---initial

设定进度条初始值,即在迭代开始前已完成的任务数,重要的是,initial+迭代次数total\rm initial+迭代次数\leq total,否则进度条将不会显示;这个参数还可以用来跳过指定迭代次数

from tqdm import tqdm, trange  
for i in trange(int(1e5), initial=1e2, total=1e7):  
	pass

效果如下:

Bar的自定义---bar_format

bar_format参数可以完全自定义Bar的样式,其中花括号{}中的元素是占位字符:{desc}代表描述(对应desc参数的值)、{percentage:3.0f}代表进度(对应迭代次数+initialtotal\frac{迭代次数+\rm initial}{\rm total}),其后紧跟的数字是格式控制、{bar: 40}代表的是进度条,其后紧跟的数字是进度条占多少个字符的位置,还有很多占位字符,详见文档

from tqdm import tqdm, trange  
for i in trange(int(1e5), bar_format="{desc}: {percentage:3.0f}% {bar: 40}|¥¥显示字样¥¥"):  
    pass

效果如下:

改变颜色!---color

通俗易懂,但也是很常用的参数之一

from tqdm import tqdm, trange  
for i in trange(int(1e5), colour='green'):  
    pass

效果如下!!!

参考

tqdm官方文档