首页 > 编程语言 >Python中的tqdm库:简化进度条的实用工具

Python中的tqdm库:简化进度条的实用工具

时间:2024-05-31 23:04:38浏览次数:19  
标签:tqdm 进度条 Python 实用工具 sleep time trange 运行

介绍

在 Python 编程中,经常会遇到需要显示长时间运行任务的进度的情况,这时候使用进度条工具可以让用户清晰了解任务的完成进度。tqdm 是一个 Python 的进度条库,它的全称是"taqaddum",这个词来自阿拉伯语,意为 "进步"。tqdm 库提供了一种在 Python 中显示进度条的简单而灵活的方式,可以用于迭代任务、循环、文件读写等场景,让用户能够清晰地看到任务的进度并且在终端上进行动态更新。

首先tqdm库的官方文档网址:tqdm documentationicon-default.png?t=N7T8https://tqdm.github.io/

tqdm 的特点包括:

  1. 开销较低:tqdm每次迭代大约为 60 纳秒(在某些情况下为 80 纳秒),并且经过单元测试以确保性能不会出现倒退。除了低延迟之外,tqdm 使用智能算法来预测剩余时间并跳过不必要的迭代显示,这在大多数情况下都可以实现可忽略的开销。
  2. 兼容性高:tqdm 可以在任何平台上运行(Linux、Windows、Mac、FreeBSD、NetBSD、Solaris/SunOS),在任何控制台或 GUI 中使用,并且与 IPython/Jupyter 笔记本兼容。
  3. 轻量化:tqdm 不需要任何依赖项(甚至不需要 !),只需要 Python 和支持控制字符(如换行符 \n 和回车符 \r)的环境即可。

本文将探讨 tqdm 库的一些用法,让大家学会在需要的场景使用它来自定义一个进度条。

安装tqdm

命令行输入:pip install tqdm 就可以安装。

基本用法

tqdm直接传入可迭代对象

from tqdm import tqdm
import time
for i in tqdm(range(60)):
    time.sleep(0.05)

运行结果:一个进度条,一共运行3秒

trange(i)

trange(i)就相当于tqdm(range(i))的简单写法,示例代码如下:

for i in trange(0, 100, desc="Training", unit="epoch", colour="#858877", bar_format='{l_bar}{bar:30}{r_bar}'):
    # colour可以指定green/GREEN/RGB,也可以指定RGB值
    time.sleep(0.1)

运行结果(起始值 0、结束值 100、描述文本 "Training"、单位 "epoch"、颜色 "#858877"):

使用update控制进度条更新的进度

test = tqdm(total=100)
for i in range(10):  # 总共更新 10 次
    test.update(10)  # 每次更新步长为 10
    time.sleep(1)

运行结果,一秒更新一次,一次更新10%:

使用write更新进度信息

test = trange(12)
for i in test:
    time.sleep(1)
    if not (i % 3):
        tqdm.write('已完成 %i' % i)

运行结果:进度条一直在更新,每隔3秒打印一次信息

通过set_description和set_postfix设置进度条显示信息

with trange(10) as tr:
    for i in tr:
        tr.set_description("左提示 %i" % i)  # 进度条左边显示信息
        tr.set_postfix(loss=random(), gen=randint(1, 999), str="右提示", lst=[2024, 2025])  # 进度条右边显示信息
        time.sleep(0.1)

运行结果:进度条左侧的提示信息会随着i值变化而变化,右侧的gen的值也是随机变化

嵌套循环的进度条

for i in notebook.tnrange(4, desc="第一层循环"):
    for j in notebook.tnrange(100, desc="第二层循环"):
        time.sleep(0.01)

这段代码我测试的是只能在jupyter notebook上使用,pycharm运行出来没有效果

pycharm运行效果:

jupyter notebook运行效果:

总结

本文给大家展示了几种tqdm的常用方法函数,供大家日常使用。但是tqdm库的使用远不止如此,比如它还可以和图形化界面结合,在图形化界面里制作一个进度条等等,具体想要更深入学习可以去官方文档看一下。

标签:tqdm,进度条,Python,实用工具,sleep,time,trange,运行
From: https://blog.csdn.net/qq_64192931/article/details/139222624

相关文章

  • 基于Python的房屋信息可视化及价格预测系统
    基于Python的房屋信息可视化及价格预测系统开发语言:Python数据库:MySQL所用到的知识:Django框架工具:pycharm、Navicat、Maven系统功能实现首页展示用户在输入正确的域名后即可访问本系统,不过用户在注册用户之前只能访问系统公告及站内新闻等信息。本系统的首页使用上中下......
  • Python背记手册让我拿到了华为OD的Offer(附面经和文档)
    24届-Python面经(华为OD)4月4日-6日24应届,目标院校非科班。临近毕业,校招没找到合适的工作,因为自己算是零基础,先从栗栗姐给的几道入门基础题开始刷,熟悉一些常考的数据结构和算法,刚开始刷基本不太会,刷的也比较慢,后来偶然得到学姐的Python面试笔记,刷题速度飞升,编程和理解能力飞升......
  • 线性规划灵敏度分析——Python实现
    灵敏度分析(SensitivityAnalysis)是线性规划的一个重要部分,用于研究在模型参数发生变化时,最优解和目标函数值的变化情况。它能够识别和评估参数变动对解的影响,从而帮助决策者了解模型的稳定性及其对不同条件变化的反应。例如,通过灵敏度分析,决策者可以确定在什么范围内,目标函数系数......
  • ESP32 实时人脸检测系统:ESP32 与上位机通信(microPython框架)
    实时人脸检测系统:ESP32与上位机通信在这篇博客中,我将介绍如何使用ESP32摄像头捕获图像,并通过UDP协议将图像传输到上位机进行实时人脸检测。我们将使用Python编程语言和OpenCV库来实现上位机端的人脸检测功能。硬件与软件准备ESP32开发板:我们使用ESP32开发板......
  • windows 电脑下使用pyenv安装python太慢 完美解决方案
    打开https://www.python.org/ftp/python找到需要安装的版本然后下载python-3.8.0-amd32.exe或python-3.8.0-amd64.exe,现在都是64位的,下载之后然后放到pyenv本地路径里面的install_cache文件夹中执行安装命令pyenvinstall3.8.0大功搞成......
  • 用Python脚本迁移MongoDB数据到金仓-kingbase数据库
    1、首先需要明确MongoDB与kingbase的对应关系,collection相当于table,filed相当于字段,根据这个对应关系创建表;此次迁移的MongoDB里的数据字段是:_id(自动生成的objectid),image(转成二进制存储的文档)所以在金仓里创建表createtableadmin(idvarchar,imagebytea);2、安装Python环境......
  • python数据处理
    Python在数据处理方面非常强大,主要得益于其丰富的库,如Pandas、NumPy和Matplotlib等。以下是一些基本的Python代码示例,用于数据加载、处理和可视化。1.导入库importpandasaspdimportnumpyasnpimportmatplotlib.pyplotasplt2.加载数据#从CSV文件加载......
  • Python-pptx正确设置中文字体
    使用pptx_ea_font库设置中文字体:1.安装pptx_ea_font库:pipinstallpptx-ea-font2.p=text_frame.paragraphs[0]#取文本段落 run=p.runs[0]#取文本运行对象,该对象为段落的子元素pptx_ea_font.set_font(run,'微软雅黑')#以下方法只能修改数字和英文#run.font.name=......
  • Python读取SU数据
    SU数据格式以下简称SeismicUnix为SU。SU格式是SEGY的简化,没有前面3600字节文件头,故需要从第一道的道头获取需要的信息。这里默认所有道的采样点数即nt是一样的。SEGY和SU格式的道头都有240字节,但SEGY只有前180字节有信息,SU的181-240字节定义了画图相关......
  • Python实现SMA黏菌优化算法优化XGBoost回归模型(XGBRegressor算法)项目实战
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。1.项目背景黏菌优化算法(Slimemouldalgorithm,SMA)由Li等于2020年提出,其灵感来自于黏菌的扩散和觅食行为,属于元启发算法。具有收敛速度快,寻优能力强的特点。主......