使用python制作进度条的方法小结

 更新时间:2024年04月12日 10:19:48   作者:码银  
偶然间刷到一个视频,说到:当程序正在运算时,会有一个较长时间的空白期,谁也不知道程序运行的进度如何,不如给他加个进度条,于是我今个就搜寻一下,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 time
 
for 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 time
 
with alive_bar(100, force_tty=True) as bar:
        for i in range(100):
                time.sleep(0.1)
                bar()

6、使用rich库完成进度条

安装库: pip install rich

import time
from rich.progress import track
 
for 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制作进度条的资料请关注脚本之家其它相关文章!

相关文章

  • 自适应线性神经网络Adaline的python实现详解

    自适应线性神经网络Adaline的python实现详解

    这篇文章主要介绍了自适应线性神经网络Adaline的python实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 写一个Python脚本下载哔哩哔哩舞蹈区的所有视频

    写一个Python脚本下载哔哩哔哩舞蹈区的所有视频

    B 站大家都熟悉,尤其是它的舞蹈区.有 100W+ 的舞蹈视频.在没有 wifi 的情况下,就欣赏不了这些视频了.作为一个 python 程序员,小编就写一个 Python 脚本在晚上下载舞蹈区的所有视频,需要的朋友可以参考下
    2021-05-05
  • Python使用Beautiful Soup实现解析网页

    Python使用Beautiful Soup实现解析网页

    在这篇文章中,我们将介绍如何使用 Python 编写一个简单的网络爬虫,以获取并解析网页内容。我们将使用 Beautiful Soup 库,它是一个非常强大的库,用于解析和操作 HTML 和 XML 文档。让我们开始吧
    2023-05-05
  • 如何配置关联Python 解释器 Anaconda的教程(图解)

    如何配置关联Python 解释器 Anaconda的教程(图解)

    这篇文章主要介绍了如何配置关联Python 解释器 Anaconda的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习火锅工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Python *args和**kwargs用法实例解析

    Python *args和**kwargs用法实例解析

    这篇文章主要介绍了Python *args和**kwargs用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python使用Tkinter库如何设置tkinter ttk框架背景颜色

    Python使用Tkinter库如何设置tkinter ttk框架背景颜色

    本文介绍了在Python的Tkinter库中,如何使用style.configure方法为ttk框架设置背景颜色及其他样式属性,以定制美观的GUI界面
    2024-09-09
  • 基于Python实现屏幕取色工具

    基于Python实现屏幕取色工具

    屏幕取色小工具‌是一种实用的软件工具,主要用于从屏幕上精确获取颜色值,非常适合设计、编程等需要精确配色的领域,下面我们看看如何利用Python编写一个屏幕取色工具吧
    2024-12-12
  • Python中Numba库装饰器的具体使用

    Python中Numba库装饰器的具体使用

    Numba是一个针对Python的开源JIT编译器,使用Numba非常方便,只需要在Python原生函数上增加一个装饰器,本文主要介绍了Python中Numba库装饰器的具体使用,感兴趣的可以了解一下
    2024-01-01
  • twilio python自动拨打电话,播放自定义mp3音频的方法

    twilio python自动拨打电话,播放自定义mp3音频的方法

    今天小编就为大家分享一篇twilio python自动拨打电话,播放自定义mp3音频的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • PyCharm上安装Package的实现(以pandas为例)

    PyCharm上安装Package的实现(以pandas为例)

    这篇文章主要介绍了PyCharm上安装Package的实现(以pandas为例),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09

最新评论