Python3,3行代码生成有颜色的进度条,这波操作秀儿都点赞。

1、引言

小屌丝:鱼哥,进度条知道吗?
小鱼:这我还能不知道?
小屌丝:那你会制作进度条吗?
小鱼:这我还能不知道?
小屌丝:那你给我制作一个进度条呗?
小鱼:你直接用PS制作一个就不就行了。
小屌丝:我电脑没有PS软件。
小鱼:那你就去某站下载一个不就行了。
小屌丝:我不想下载。
小鱼:你…这… 服了你了,我想到了它。
小屌丝:它?
小鱼:没错,是它,是它,就是它,我们的小可爱~ tqdm

2、代码实战

关于tqdm,可能大家不太熟悉,
但是,关于进度条,大家一定很熟悉。

这不是废话嘛

今天我们就来研究这个神奇的库 -->tqdm<–

2.1 安装

由于tqdm是python的第三方库,所以在使用前,必须安装。
老规矩, 我们这里 pip 安装

pip  install  tqdm

如果不想每次都pip安装,直接看这两篇:
Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!
Python3:我低调的只用一行代码,就导入Python所有库!

当然,如果在线安装不成功,那也可以看小鱼的这篇《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)

在这里插入图片描述

以上就是今天分享的内容,
关于更多进度条显示状态,
不妨你也试一下。

  • 5
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Carl_奕然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值