Python中控制台如何展示进度条——tqdm库使用

在 Python 中可以使用特定的库来创建控制台进度条,其中 tqdm 是一个常用的选择,它能够方便地显示进度条并跟踪迭代的进度。你可以通过 pip 安装 tqdm 库:

pip install tqdm

包装迭代器:

使用 tqdm 来包装你的迭代器,比如 range() 函数或者列表。例如:

from tqdm import tqdm
import time

# 假设有一个很长的迭代过程
for i in tqdm(range(100)):
    # 在这里执行迭代的任务
    # 这里使用 time.sleep 模拟任务执行的时间
    time.sleep(0.1)

image-20231122152908666

手动更新进度条:

在某些情况下,你可能想手动更新进度条而不是使用迭代器。你可以使用 tqdm.update() 方法来手动更新进度。示例:

from tqdm import tqdm
import time

progress_bar = tqdm(total=1000)
for i in range(100):
    # 执行任务
    time.sleep(0.1)
    progress_bar.update(10)  # 手动更新进度条
progress_bar.close()

image-20231122152732503

自定义外观和信息:

tqdm 允许你自定义进度条的外观和显示信息,比如设置进度条的描述、单位、动画样式等。例如:

from tqdm import tqdm
import time

for i in tqdm(range(100), desc='Processing', unit='iterations', ncols=100):
    # 执行任务
    time.sleep(0.1)

image-20231122152650701

嵌套进度条:

如果你有嵌套的循环或任务,你可以使用 tqdm 的嵌套方式来显示多个进度条。示例:

from tqdm import tqdm
import time

outer = tqdm(range(3), desc='Outer')
for i in outer:
    inner = tqdm(range(5), desc='Inner', leave=False)  # 内部循环不会覆盖外部进度条
    for j in inner:
        # 执行任务
        time.sleep(0.1)
        inner.set_description(f'Inner: {j}', refresh=True)  # 更新内部进度条的描述信息
    inner.close()
    outer.update(1)
outer.close()

image-20231122152607736

暂停和恢复:

tqdm 也允许你暂停和恢复进度条的更新。你可以使用 tqdm.pause()tqdm.resume() 方法来暂停和恢复更新。示例:

from tqdm import tqdm
import time

progress_bar = tqdm(range(100))
for i in range(50):
    time.sleep(0.1)
    if i == 25:
        progress_bar.pause()  # 暂停更新
        time.sleep(2)  # 模拟一些耗时操作
        progress_bar.resume()  # 恢复更新
    progress_bar.update(1)
progress_bar.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/176487.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv8改进实战 | 更换主干网络Backbone(六)之轻量化模型VanillaNet进阶篇

前言 轻量化网络设计是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝:移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。分组卷积:将卷积操作分解为若干个较小的卷积操作,并将它们分别作用于输入的不…

Iterator Patterns: 迭代器的封装一定离不开容器,但是自己写容器不仅仅给STL的容器套个壳,就需要用到双重指针来存储源数据

Intent Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation. // refactoringtopattern.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream> #i…

我在Vscode学OpenCV 几何变换(缩放、翻转、仿射变换、透视、重映射)

几何变换指的是将一幅图像映射到另一幅图像内的操作。 cv2.warpAffine&#xff1a;使用仿射变换矩阵对图像进行变换&#xff0c;可以实现平移、缩放和旋转等操作。cv2.warpPerspective&#xff1a;使用透视变换矩阵对图像进行透视变换&#xff0c;可以实现镜头校正、图像纠偏等…

三十分钟学会Linux的基本操作

GNU/Linux GNU项目是由Richard Stallman发起的自由软件运动&#xff0c;旨在创建一个完全自由的操作系统。虽然GNU项目已经开发了大量的系统组件和工具&#xff0c;但它一直缺少一个完整的操作系统内核。在这时Linus Torvalds开发了Linux内核&#xff0c;并将其发布为自由软件…

浅谈建筑能耗智能监测平台发展现状及未来趋势

安科瑞 华楠 摘要&#xff1a;文章以每年发布的上海市国家机关办公建筑和大型公共建筑能耗监测及分析报告变化为切入点&#xff0c;分析了历年能耗分析报告的内容和功能变化&#xff1b;介绍了上海市国家机关办公建筑和大型公共建筑能耗监测平台发展和应用历程&#xff1b;揭示…

Socket通信之网络协议基本原理

一台机器将自己想要表达的内容&#xff0c;按照某种约定好的格式发送出去&#xff0c;当另外一台机器收到这些信息后&#xff0c;也能够按照约定好的格式解析出来&#xff0c;从而准确、可靠地获得发送方想要表达的内容。这种约定好的格式就是网络协议&#xff08;Networking P…

验证码 | 可视化一键管控各场景下的风险数据

目录 查看今日验证数据 查看未来趋势数据 验证码作为人机交互界面经常出现的关键要素&#xff0c;是身份核验、防范风险、数据反爬的重要组成部分&#xff0c;广泛应用网站、App上&#xff0c;在注册、登录、交易、交互等各类场景中发挥着巨大作用&#xff0c;具有真人识别、身…

代码随想录刷题】Day15 二叉树02------延伸题目练习

文章目录 1.【100】相同的树1.1 题目描述1.2 java代码实现 2.【572】另一棵树的子树2.1 题目描述2.2 java代码实现 【100】相同的树 【572】另一棵树的子树 1.【100】相同的树 1.1 题目描述 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。…

在 VSCode 中使用 GDB 进行 C/C++ 程序调试(图文版)

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;数据结构&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;网络编程等领域UP&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff0…

浅谈能源智能管理系统在大学高校中的应用

安科瑞 华楠 摘要&#xff1a;结合深圳南方科技大学能效系统工程设计实例&#xff0c;针对校园中电耗、热量消耗、冷量消耗及水资源消耗数据的采集、传输、分析管理系统&#xff0c;分析了系统中的水、电、气在高校中的能耗分布&#xff0c;并阐述了节能应用方案&#xff0c;可…

AWS Step Function 异步动态调用 Lambda 后汇集结果

分布式计算有这么一个需求&#xff0c;主进程准备好输入数据&#xff0c;然后根据输入中某个 Items 动态调用若干计算进程&#xff0c;待到所有计算完成后再汇集结果。这一需求移植到 AWS 上就像是下面这样子 但在一个 Lambda 中同步调用其他 Lambda 时就有个费时费钱的问题&am…

Linux中的MFS分布式文件系统

目录 一、MFS分布式文件系统 1、MooseFS简介 2、Moose File System的体系结构 &#xff08;1&#xff09;MooseFS Master &#xff08;2&#xff09;MooseFS Chunk Server &#xff08;3&#xff09;MooseFS Metalogger &#xff08;4&#xff09;MooseFS Client &…

程序的执行原理(下)

文章目录 系统的硬件组成总线I/0设备主存处理器程序计数器&#xff08;PC&#xff09;加载:存储:操作:跳转: 运行 hello 程序读入寄存器&#xff0c;再把它存放到内存从磁盘加载程序到主存处理器执行程序并显示 参考 系统的硬件组成 总线 贯穿整个系统的是一组电子管道&#…

人工标签不准确的一种解决方案:PCA降维可视化筛选正样本

背景 在实际的业务场景里&#xff0c;用会话文本构建模型&#xff08;机器学习/深度学习&#xff09;来做意图分类之类的任务时&#xff0c;经常会出现人工打标不够准确的问题&#xff0c;标签都不准确的话模型当然无法学习到有效信息了。这个问题真的非常头疼…除了与业务沟通…

工业风格大屏:让数据更生动,直观更简单

硬工业风格可视化大屏是一种以工业为主题的大屏展示方式&#xff0c;具有极强的视觉冲击力和直观性。它将大屏展示和硬件设计融为一体&#xff0c;将数据以可视化的方式呈现出来&#xff0c;帮助用户更好地理解数据背后的含义和价值。 硬工业风格可视化大屏如&#xff1a; 硬工…

《QT从基础到进阶·三十五》QT插件实现侧边工具栏tabBar

tabBar是用QT插件实现的一个dll&#xff0c;对于插件的使用可以参考文章&#xff1a; 《QT从基础到进阶三十三》QT插件开发QtPlugin 源码放在文章末尾 该功能类似侧边工具栏&#xff0c;可以在该标签栏上添加自己开发的界面&#xff0c;实现代码如下&#xff1a; 1、所有功能…

modbus协议及modbus TCP协议

一、Modbus协议 1.起源 Modbus由Modicon公司于1979年开发&#xff0c;是一种工业现场总线协议标准。 Modbus通信协议具有多个变种&#xff0c;其中有支持串口&#xff0c;以太网多个版本&#xff0c;其中最著名的是Modbus RTU&#xff08;通信效率最高&#xff0c;基于串口&am…

【鸿蒙生态千帆起】HarmonyOS 系统级地图与位置服务,赋能广大开发者

在"与 HarmonyOS 同行&#xff0c;开放生态&#xff0c;共赢未来"为主题的 HUAWEI Developer Day&#xff08;简称 HDD&#xff09;沙龙中&#xff0c;Petal Maps 为开发者们带来了在 HarmonyOS 下地图领域的最新技术探索与实践成果。 得益于 HarmonyOS 一次开发多端…

[点云分割] 欧式距离分割

效果&#xff1a; 代码&#xff1a; #include <iostream> #include <chrono>#include <pcl/ModelCoefficients.h> // 模型系数的定义 #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> // 各种点云数据类型 #include <pcl/sample_c…

探讨大型公共建筑能耗监测与信息管理系统研究及应用

安科瑞 华楠 摘要&#xff1a;文章通过阐述大型公共建筑能耗现状&#xff0c;突出大型公共建筑实施节能监管的必要性&#xff0c;并在系统总结运用技术手段实施建筑能耗监测的基础上&#xff0c;介绍了江苏省建筑能耗监测系统研究过程中的技术创新和应用情况。 关键词&#x…