前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 三方库:tqdm实现进度条

python 三方库:tqdm实现进度条

作者头像
雷子
发布2023-09-11 17:50:43
4810
发布2023-09-11 17:50:43
举报
文章被收录于专栏:雷子说测试开发

在开发的过程中,我们总会遇到这样的,去实现进度条展示,那么如何来实现进度条呢,其实有一个模块已经给我们完成了--tqdm

代码语言:javascript
复制
pip install tqdm

实现:

代码语言:javascript
复制
import time
from tqdm import tqdm, trange

#trange(i)是tqdm(range(i))的一种简单写法
for i in trange(100):
    time.sleep(0.05)

for i in tqdm(range(100), desc='进度'):
    time.sleep(0.05)
dic = ['1', '2', '3', '4', '5']
pbar = tqdm(dic)
for i in pbar:
    pbar.set_description('进度:'+i)
    time.sleep(0.2)

结果:

如何手动更新进度

代码语言:javascript
复制
import time
from tqdm import tqdm

with tqdm(total=200) as pbar:
    pbar.set_description('进度:')
    # total表示总的项目, 循环的次数20*10(每次更新数目) = 200(total)
    for i in range(20):
        # 进行动作, 这里是过0.1s
        time.sleep(0.1)
        # 进行进度更新, 这里设置10个
        pbar.update(10)

结果展示:

代码语言:javascript
复制
    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=False,
                 lock_args=None, nrows=None, colour=None, delay=0.0, gui=False,
                 **kwargs):

解析:

代码语言:javascript
复制
iterable: 可迭代的对象, 在手动更新时不需要进行设置
desc: 字符串, 左边进度条描述文字
total: 总的项目数
leave: bool值, 迭代完成后是否保留进度条
file: 输出指向位置, 默认是终端, 一般不需要设置
ncols: 调整进度条宽度, 默认是根据环境自动调节长度, 如果设置为0, 就没有进度条, 只有输出的信息
unit: 描述处理项目的文字, 默认是'it', 例如: 100 it/s, 处理照片的话设置为'img' ,则为 100 img/s
unit_scale: 自动根据国际标准进行项目处理速度单位的换算, 例如 100000 it/s >> 100k it/s

基于类实现:

代码语言:javascript
复制
import time
from tqdm import tqdm

# 停留0.5s
def action():
    time.sleep(0.5)
with tqdm(total=100000, desc='例子', leave=True, ncols=100, unit='B', unit_scale=True) as pbar:
    for i in range(10):
        # 停留0.5秒
        action()
        # 更新发呆进度
        pbar.update(10000)

结果:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档