Python3,3行代码生成有颜色的进度条,这波操作秀儿都点赞。
1、引言
小云:鱼哥,进度条知道吗?
小鱼:这我还能不知道?
小云:那你会制作进度条吗?
小鱼:这我还能不知道?
小云:那你给我制作一个进度条呗?
小鱼:你直接用PS制作一个就不就行了。
小云:我电脑没有PS软件。
小鱼:那你就去某站下载一个不就行了。
小云:我不想下载。
小鱼:你…这… 服了你了,我想到了它。
小云:它?
小鱼:没错,是它,是它,就是它,我们的小可爱~ tqdm 。
2、代码实战
关于tqdm,可能大家不太熟悉,
但是,关于进度条,大家一定很熟悉。
这不是废话嘛
今天我们就来研究这个神奇的库 -->tqdm<–
2.1 安装
由于tqdm是python的第三方库,所以在使用前,必须安装。
老规矩, 我们这里 pip 安装
pip install tqdm
如果不想每次都pip安装,直接看这两篇:
当然,如果在线安装不成功,那也可以看小鱼的这篇《Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!》,里面也有离线安装方式。
安装完成,就开始我们的表演。
2.2 参数解析
在使用前,我们先看下 tqdm 支持的参数及定义。
def __init__(self, iterable=None, desc=None, total=None, leave=True, file=None,
ncols=None, mininterval=0.1, maxinterval=10.0, miniters=None,
ascii=None, disable=False, unit='it', unit_scale=False,
dynamic_ncols=False, smoothing=0.3, bar_format=None, initial=0,
position=None, postfix=None, unit_divisor=1000, write_bytes=None,
lock_args=None, nrows=None, colour=None, delay=0, gui=False,
**kwargs):
支持的参数不少,我们列举一些常用的,来解释一下:
- iterable:可迭代的对象,在手动更新时不需要进行设置。
- desc:字符串,左边进度条描述文字。
- total:总的项目数。
- leave:布尔值,迭代完成后是否保留进度条。
- file:输出指向位置,默认是终端, 一般不需要设置。
- ncols:调整进度条宽度,默认是根据环境自动调节长度,如果设置为0,就没有进度条,只有输出的信息。
- unit:描述处理项目的文字,默认是’it’,例如: 100 it/s,处理照片的话设置为’img’ ,则为 100 img/s。
- unit_scale:自动根据国际标准进行项目处理速度单位的换算,例如 100000 it/s >> 100k it/s。
2.3 代码展示
1、直接将可迭代对象作为参数传入:
# -*- coding:utf-8 -*-
# @Time : 2021-12-06
# @Author : carl_DJ
from tqdm import tqdm
import time
for char in tqdm(['h','e','l','l','o','C','a','r','l']):
time.sleep(0.5)
for i in tqdm(range(100)):
time.sleep(0.5)
运行结果
2、我们用 trange()来替代 tqdm(range()):
# -*- coding:utf-8 -*-
# @Time : 2021-12-06
# @Author : carl_DJ
from tqdm.notebook import trange
import time
for i in trange(100):
time.sleep(0.5)
这里说一下,如果要用trange()方法,需要先安装 ipywidgets
否则会报错。
报错如下:
AttributeError: 'tqdm_notebook' object has no attribute 'disp'
3、我们给进度条添加描述:
# -*- coding:utf-8 -*-
# @Time : 2021-12-06
# @Author : carl_DJ
from tqdm import tqdm
from tqdm.notebook import trange
import time
pdar = tqdm(range(5))
for char in pdar:
#给进度条添加描述
pdar.set_description("Progress %d" %char)
time.sleep(0.5)
运行结果
4、手动控制进度条:
手动控制进度条,并且设置颜色
# -*- coding:utf-8 -*-
# @Time : 2021-12-06
# @Author : carl_DJ
from tqdm import tqdm
from tqdm.notebook import trange
import time
#设置总次数为100,颜色为好看的 yellow
with tqdm(total=100,colour='yellow')as pdar:
#设置分4次来进行更新,进度条按照10%,20%,30%,40%间隔来更新
for i in range(1,5):
time.sleep(0.5)
#更新进度
pdar.update(10*i)
运行结果
5、嵌套进度条更新
代码示例
# -*- coding:utf-8 -*-
# @Time : 2021-12-06
# @Author : carl_DJ
from tqdm import tqdm
from tqdm.notebook import trange
import time
#每次更新间隔10%,更新完共需要10次
for i in tqdm(range(10)):
#总数为100
for j in tqdm(range(100)):
time.sleep(0.1)
运行结果
以上就是今天分享的内容,
关于更多进度条显示状态,
不妨你也试一下。
我是小鱼:
- CSDN 博客专家;
- 阿里云 专家博主;
- 51CTO 博客专家;
- 51认证讲师;
- 金牌面试官;
- 职业规划师;
关注我,带你学习更多更有趣的Python知识。
- 点赞
- 收藏
- 关注作者
评论(0)