• 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高级用法之:在JNA中将本地方法映射到JAVA代码中
    基于springboot+vue社区疫情防控系统
    计算机毕业设计Python+djang的新生报到服务管理系统(源码+系统+mysql数据库+Lw文档)
    【Web UI自动化测试】Web UI自动化测试之框架篇(全网最全)
    R语言矩阵操作:根据值找到行号和列号
    copulas对涉及时间连续随机过程的时变可靠性的影响研究(Matlab代码实现)
    两个macos命令
    基于ASP.Net Core和Layui实现简单用户登录
    kamailio rtpengine模块关于via-branch的讨论
  • 原文地址:https://blog.csdn.net/m0_71212744/article/details/139844537