当前位置:   article > 正文

一个被忽视的Python神器 - Tqdm_conda install tqdm

conda install tqdm

1. 什么是Tqdm

在日常工作和学习中,经常需要观察当前任务的执行进度,尤其是一个执行时间很长的任务,如果能够有进度条实时的显示当前的任务进度,那么将非常方便。

Tqdm 是一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。总之,Tqdm是用来显示进度条的,很漂亮,使用很直观,而且基本不影响原程序效率。

在这里插入图片描述

2.安装Tqdm

Tqdm不是Python的标准库,使用之前需要先安装。

pip install tqdm
  • 1

如果你使用的Anaconda

conda install -c conda-forge tqdm
  • 1

3. Tqdm基本用法

基于迭代类型

# 导入tqdm
from tqdm import tqdm
# 导入时间模块
import time

# 在循环中使用tqdm构建迭代对象
for x in tqdm(range(100)):
    # 模拟任务执行过程
    time.sleep(0.5)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

1.p1.gif

手动更新进度

from tqdm import tqdm
import time

# 常见进度条对象,设置总进度值为100

bar = tqdm(total=100)

for x in range(100):
time.sleep(0.5)
\# 每次循环当前进度值增加10
bar.update(10)

# 注意:使用完成后必须关闭进度条!!!!

bar.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2.gif

定制进度描述信息

from tqdm import tqdm
import time

message = list('python')
bar = tqdm(message)
for x in bar:
    time.sleep(1)
    # 定制进度条秒速信息
    bar.set_description(f'当前获取内容 {x}')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

image.png

4. 英雄联盟皮肤下载实例

下面使用requests下载所有英雄皮肤,然后通过tqdm来显示下载进度。

import requests
from tqdm import tqdm
import os

def get_all_hero_id():
    """获取所有英雄的英雄id"""
    response = requests.get('https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js')
    result = response.json()
    hero_id_list = [x['heroId'] for x in result['hero']]
    return hero_id_list

def get_one_hero_skins(hero_id):
    """下载一个英雄所有皮肤"""
    url = f'https://game.gtimg.cn/images/lol/act/img/js/hero/{hero_id}.js'
    result = requests.get(url).json()
    bar = tqdm(result['skins'])
    for x in bar:
        # 1. 获取每个皮肤的相关信息

        hero_name = x['heroName']
        skin_name = x['name']
        bar.set_description(f'{hero_name}的皮肤正在下载')
        skin_url = x['mainImg']
        if not skin_url:
            skin_url = x['chromaImg']

        # 2. 创建英雄名称对应的文件夹
        path = f'./{hero_name}'
        if not os.path.exists(path):
            # 不存在就创建对应的文件夹
            os.mkdir(path)

        # 3. 下载皮肤对应的图片
        img_data = requests.get(skin_url).content
        with open(path+f'/{skin_name}.jpg', 'wb') as f:
            f.write(img_data)
            

if __name__ == '__main__':
    # 1. 获取所有英雄的英雄id
    ids = get_all_hero_id()

    # 2.遍历拿到每个英雄的id,拼接对应的皮肤接口地址
    for x in ids:
        her_name = get_one_hero_skins(x)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

3.gif


以上就是我们本篇的全部内容了,这篇为大家讲解了这个能显示进度条的python神器!
学会了吗,学会了就赶紧操练起来吧~

更多技术类干货,关注我!源码、配套学习资料等,可戳这里获得

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/243238
推荐阅读
相关标签
  

闽ICP备14008679号