• 3分钟搞懂Python第三方库-tqdm使用


    tqdm(全称“tqdm: A Fast, Extensible Progress Bar for Python and CLI”,意为“快速、可扩展的Python和CLI进度条”)是一个用于快速添加进度条的Python库。它非常轻量级,易于使用,并且支持多种迭代环境。

    主要特点

    1. 快速:对代码的运行效率影响极小。
    2. 灵活:支持多种迭代环境,如列表、文件、生成器等。
    3. 可扩展:允许用户自定义进度条的各种属性。
    4. 自动处理:能够智能地根据迭代器的长度来估计进度和剩余时间。

    基本使用

    使用tqdm的基本方式是在你需要添加进度条的迭代器上调用tqdm()函数。

    1. from tqdm import tqdm
    2. import time
    3. from tqdm import tqdm
    4. import time
    5. # 创建一个简单的循环来模拟长时间运行的任务
    6. for i in tqdm(range(100)): # 使用tqdm包装range迭代器
    7. # 在每次循环时,暂停1秒以模拟耗时的操作
    8. time.sleep(1) # 模拟耗时操作
    9. # 输出:
    10. # 0%| | 0/100 [00:00
    11. # ... (进度条会逐步增加)
    12. # 100%|██████████| 100/100 [01:41<00:00, 1.01s/it]

     左边33秒表示已运行时间,右边1:07表示预计运行剩余时间

    参数含义

    tqdm函数接受多个参数来定制进度条的外观和行为:

    • iterable:必需的参数,表示需要添加进度条的迭代器。
    • desc:进度条描述信息,默认为空字符串。
    • total:迭代器的总长度,如果iterableNone或不支持len()函数,则需要手动指定。
    • ncols:进度条的总宽度,默认为80个字符。
    • unit:进度条单位,默认为'it'(表示迭代次数)。
    • unit_scale:根据迭代次数自动调整单位,如True、1000表示达到1000时,单位会从'it'变为'k'。
    • mininterval:进度条更新的最小时间间隔,单位为秒,默认为0.1秒。
    • ascii:如果设置为True,则使用ASCII字符来绘制进度条,默认为False。

    示例

    1. from tqdm import tqdm
    2. import time
    3. # 创建一个进度条,描述为“Loading data”,并设置总长度为100
    4. with tqdm(total=100, desc="Loading data", ncols=100) as pbar:
    5. for i in range(100):
    6. # 模拟耗时操作
    7. time.sleep(0.01)
    8. # 更新进度条
    9. pbar.update(1)
    10. # 使用上下文管理器(with语句)可以确保进度条在完成后正确关闭
    11. # 输出:
    12. # Loading data: 0%| | 0/100 [00:00
    13. # ... (进度条会逐步增加)
    14. # Loading data: 100%|██████████| 100/100 [00:01<00:00, 99.88it/s]

            在这个示例中,我们使用with语句来创建一个进度条上下文,这样可以确保在循环结束后自动关闭进度条。我们还设置了desc参数来自定义进度条的描述信息,并使用了ncols参数来设置进度条的总宽度。在每次循环中,我们使用pbar.update(1)来更新进度条的进度。

  • 相关阅读:
    最佳精准度:解锁超级学习器和校准曲线的潜能
    Java基础之循环语句
    http和https的区别以及常见面试题
    rocksdb 中 db_bench 的使用方法
    你知道npm、yarn、pnpm的区别吗?
    重识Nginx - 01 Nginx 主要应用场景及版本概述
    JustAuth扩展:支持自动获得回调域名、使用redission作为Cache
    Java制作俄罗斯方块
    OpenAI 董事会宫斗始作俑者?一窥伊尔亚·苏茨克维内心世界
    卷积神经网络预测数据值,一维卷积神经网络 keras
  • 原文地址:https://blog.csdn.net/m0_71212744/article/details/139844537