使用Python制作进度条有多少种方法?看这一篇文章就够了!
前言
偶然间刷到一个视频,说到:当程序正在运算时,会有一个较长时间的空白期,谁也不知道程序运行的进度如何,不如给他加个进度条。
于是我今个就搜寻一下,Python版的进度条都可以怎么写!
送书活动:【码银送书啦】多本机械工业出版社好书
正文
1、数字进度条
进度条的格式是"{当前循环次数} / {总循环次数}"。其中,循环次数从1开始,到500,000结束。
通过使用end='\r'参数,print语句的输出不会换行,而是每次循环都会覆盖上一次的输出。这样就实现了实时更新进度条的效果。
for i in range(500000):print(f'{i+1} / {500000}',end='\r')

2、使用百分号表示进度
for i in range(500):for j in range(5000):print(f'{((i+1)*100 // 500)}%',end='\r')

3、 使用字符完成简易进度条
该代码将打印出一行字符,并且字符的总长度为50个字符。 其中,字符的内容为"@"的重复,重复的次数为50次。 外面的"| |"是用来给字符串添加边框的,以增加可读性。
for i in range(500):for j in range(500):print("进度条:"f'|{"@"*((i+1)*50 // 500):50}|',end='\r')print("\n程序完成")

3和4是可以结合起来的 :
for i in range(500):for j in range(500):print("进度条:"f'|{"@"*((i+1)*50 // 500):50}|',f'{((i+1)*100 // 500)}%',end='\r')print("\n程序完成")
输出结果:
进度条:|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@| 100%
4、使用tqdm库完成进度条
官网:tqdm · PyPI
安装这个库:pip install tqdm。
示例代码:
from tqdm import tqdm
import timefor i in tqdm(range(500)):time.sleep(0.1)

5、使用alive-progress库完成进度条
官网链接:alive-progress · PyPI
安装库:pip install alive-progress
示例代码:
from alive_progress import alive_bar
import timewith alive_bar(100, force_tty=True) as bar:for i in range(100):time.sleep(0.1)bar()
效果视频:
进度条1
6、使用rich库完成进度条
安装库: pip install rich
import time
from rich.progress import trackfor i in track(range(100),description="进度:"):time.sleep(0.1)

这个截图没有在Pycharm编辑器里截图的原因是:
显示不全哈哈。
7、让文心一言给我画一个😃
import time
import sys def print_progress_bar(iteration, total, prefix='', suffix='', decimals=1, length=100, fill='█', print_end="\r"): """ 调用该函数时传入: iteration - 当前的进度(Int) total - 总进度(Int) prefix - 前缀字符串(Str) suffix - 后缀字符串(Str) decimals - 正数的小数位数(Int) length - 进度条长度(Int) fill - 进度条填充字符(Str) print_end - 结束字符(Str),默认是"\r",表示进度条更新在同一行 """ percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total))) filled_length = int(length * iteration // total) bar = fill * filled_length + '-' * (length - filled_length) print(f'\r{prefix} |{bar}| {percent}% {suffix}', end=print_end) # 当完成进度时,打印一个换行符 if iteration == total: print() # 使用示例
for i in range(1, 101): print_progress_bar(i, 100, prefix='进度:', suffix='完成', length=50) time.sleep(0.01) # 休眠0.01秒,模拟进度更新
备注信息
Rich 是一个 Python 库,主要用于在终端中提供富文本和精美格式。它通过 API 允许用户轻松地为终端输出添加颜色和样式,支持绘制漂亮的表格、进度条、markdown 格式输出、语法高亮、源代码回溯等多种功能。Rich 库支持在 Linux、OSX 和 Windows 上运行,其中在新的 Windows 终端上可以支持真彩色和表情符号,而经典终端的色彩限制为8种颜色。此外,Rich 还可以与 Jupyter 笔记本一起使用,无需其他配置。
tqdm源自阿拉伯语塔卡杜姆(تقدّم)意思是“进步”,在西班牙语中是“我非常爱你”的缩写(特奎罗·德马西亚多)。立即让你的循环显示一个智能的进度条。
alive-progress的一些亮点:
- 一个令人着迷的实时微调器,清楚地显示您的冗长过程没有崩溃,您的 SSH 连接没有冻结,视觉反馈会对您的处理速度做出反应。
- 一个高效的多线程栏,以实际处理速度的一小部分进行自我更新,以保持较低的 CPU 使用率并避免终端垃圾邮件(每秒 1,000,000 次迭代相当于每秒大约 60 次更新,您也可以根据自己的喜好进行校准)。
- ETA(预计到达时间)功能,具有智能指数平滑算法,可显示完成时间,使您能够更有效地计划时间并管理工作负载。
- 自动打印和记录挂钩,提供无缝集成和轻松跟踪,甚至在它们发生时用当前的条形位置来丰富它们。
- 当处理完成时,它会打印出一个不错的收据,包括经过的时间和观察到的吞吐量。
- 它检测下溢和溢出,使您能够跟踪命中、未命中或任何所需的计数,而不一定是实际迭代。
- 你可以暂停它!没错,你先在这里听到了!任何地方都没有其他进度条具有此功能!您可以在任何处理过程中返回 Python 提示符,调整一些项目,然后回到该正在运行的进程,就好像它从未停止过一样!所有小部件都保持原样,经过的时间很好地忽略了暂停的时间!
alive_bar - 它是高度可定制的,有各种微调器和酒吧样式,以及几个现成的工厂,可以轻松生成你的!您甚至可以使用超级强大且酷炫的工具来帮助您设计自己的动画!您可以在屏幕上看到所有生成的帧和循环,具有多个详细级别,甚至包括生动的再现!无限的创造力触手可及
相关文章:
使用Python制作进度条有多少种方法?看这一篇文章就够了!
前言 偶然间刷到一个视频,说到:当程序正在运算时,会有一个较长时间的空白期,谁也不知道程序运行的进度如何,不如给他加个进度条。 于是我今个就搜寻一下,Python版的进度条都可以怎么写! 送书…...
SpringBoot-2.7.6基于SLF4J日志门面的日志框架切换
SpringBoot 没有强制性的日志记录依赖项,但 Commons Logging API 除外,它通常由 Spring Framework 的模块提供。 要使用 Logback,您需要将其包含在类路径中。 推荐的方法是您只需要通过启动器,这都取决于 . 对于 Web 应用程序 ,因为它可传递地依赖于日志记录启动器。 如果…...
MongoDB聚合运算符:$binarySize
$binarySize聚合运算符返回给定字符串或二进制数据的字节数。 语法 { $binarySize: <string or binData> }使用 <string or bindData>可以是任何能够被解析为字符串和二进制数据的表达式;如果表达式解析为null,则$binarySize也返回null&a…...
Android的ViewModel
前言 在Compose的学习中,我们在可组合函数中使用rememberSaveable保存应用数据,但这可能意味着将逻辑保留在可组合函数中或附近。随着应用体量不断变大,您应将数据和逻辑从可组合函数中移出。 而在之前的应用架构学习中&…...
Android 圆环带刻度条进度动画效果实现
效果图 需求是根据传感器做一个重力球效果,先实现了动画后续加上跟传感器联动. 又是摆烂的一天, 尚能呼吸,未来可期啊 View源码 package com.android.circlescalebar.view;import android.content.Context; import android.content.res.Typ…...
94. 二叉树的中序遍历
// 定义一个名为Solution的类,用于解决二叉树的中序遍历问题 class Solution { // 定义一个公共方法,输入是一个二叉树的根节点,返回一个包含中序遍历结果的整数列表 public List<Integer> inorderTraversal(TreeNode root) { // …...
汽车信息安全概述
随着智能网联汽车的迅猛发展,车辆不再是简单的交通工具,而是集数据收集、处理与通信于一体的移动智能终端。然而,这一变革也使得汽车成为黑客攻击的新目标。汽车信息安全问题日益凸显,成为行业关注的焦点。本文将深入探讨汽车信息…...
Linux——基础IO
📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、C语言IO1、写文件2、读文件3、stdin & stdout & stderr 二、系统文件I/O1、写文件…...
数据结构-数组
一,数组基础及注意事项 1,用来储存一组相同的类型的数据. 2,在内存中,分配连续的空姐,数组创建时要指定容量(大小). 3,创建格式: 数据类型 []数组名 int[] arr new int[10] int[] arr2 {1,2,3,4}. 4,索引--访问数组时通过索引进行操作. (注意:一定要理解索引的含义,在数据结…...
【Java程序设计】【C00279】基于Springboot的智慧外贸平台(有论文)
基于Springboot的智慧外贸平台(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的智慧外贸平台 本系统分为系统功能模块、管理员功能模块、买家功能模块以及商家功能模块。 系统功能模块:在平台首页可以…...
C#,计算几何,计算机图形学(Computer Graphics)洪水填充算法(Flood Fill Algorithm)与源代码
1 泛洪填充算法(Flood Fill Algorithm) 泛洪填充算法(Flood Fill Algorithm) ,又称洪水填充算法,是在很多图形绘制软件中常用的填充算法,最熟悉不过就是 windows 自带画图软件的油漆桶功能。 2 源程序 using System; using System.Collecti…...
C# 实现网页内容保存为图片并生成压缩包
目录 应用场景 实现代码 扩展功能(生成压缩包) 小结 应用场景 我们在一个求职简历打印的项目功能里,需要根据一定的查询条件,得到结果并批量导出指定格式的文件。导出的格式可能有多种,比如WORD格式、EXCEL格式、PDF格式等,…...
C#_事件简述
事件模型简述 C#中事件的运行模式为"发布订阅模型",事件触发者称为"发布者",事件处理者称为"订阅者" 事件模型的五个组成部分 事件(成员)事件的拥有者(类/对象)事件的响应…...
C语言:指针(一)
目录 1.内存和地址2. 指针变量和地址2.1 取地址操作符(&)2.2 指针变量和解引用操作符(*)2.2.1 指针变量2.2.2 解引用操作符(*) 2.3 指针变量的大小 3.指针变量的类型和意义3.1 指针的解引用3.2 指针 -指…...
【leetcode刷题之路】面试经典150题(3)——哈希表+区间
文章目录 5 哈希表5.1 【哈希表】赎金信5.2 【数学】同构字符串5.3 【数学】单词规律5.4 【哈希表】有效的字母异位词5.5 【哈希表】字母异位词分组5.6 【双指针】两数之和5.7 【数学】快乐数5.8 【哈希表】219. 存在重复元素 II5.9 【数学】最长连续序列 6 区间6.1 【数学】汇…...
群晖NAS DSM7.2.1安装宝塔之后无法登陆账号密码问题解决
宝塔的安装就不在这赘述了,只说下,启动之后默认账号密码无法登陆的问题。 按照上面给出的账号密码,无法登陆 然后点忘记密码,由于是docker安装的,根目录下没有/www/server/panel 。 也没有bt命令 要怎么修改呢。 既然…...
9、使用 ChatGPT 的 GPT 制作自己的 GPT!
使用 ChatGPT 的 GPT 制作自己的 GPT! 想用自己的 GPT 超越 GPT ChatGPT 吗?那么让我们 GPT GPT 吧! 山姆 奥特曼利用这个机会在推特上宣传 GPTs 的同时还猛烈抨击了埃隆的格罗克。 GPTs概览 他们来了! 在上周刚刚宣布之后,OpenAI 现在推出了其雄心勃勃的新 ChatGPT…...
企业微信应用开发:使用Cpolar域名配置进行本地接口回调的调试指南
文章目录 1. Windows安装Cpolar2. 创建Cpolar域名3. 创建企业微信应用4. 定义回调本地接口5. 回调和可信域名接口校验6. 设置固定Cpolar域名7. 使用固定域名校验 企业微信开发者在应用的开发测试阶段,应用服务通常是部署在开发环境,在有数据回调的开发场…...
js 可选链运算符(?.)空值合并运算符(??)逻辑空赋值运算符(??=)
可选链运算符(?.)允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?. 运算符的功能类似于 . 链式运算符,不同之处在于,在引用为空 (nullish ) (null 或者 undefined) 的情况下不会引起…...
vue 手势解锁功能
效果 实现 <script setup lang"ts"> const canvasRef ref<HTMLCanvasElement>() const ctx ref<CanvasRenderingContext2D | null>(null) const width px2px(600) const height px2px(700) const radius ref(px2px(50))const init () > …...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
