6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)

 更新时间:2020年01月06日 14:28:36   作者:不脱发的程序猿  
这篇文章主要介绍了6行Python代码实现进度条效果(Progress、tqdm、alive-progress和PySimpleGUI库),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在项目开发过程中加载、启动、下载项目难免会用到进度条,如何使用Python实现进度条呢?

这里为小伙伴们分享四种Python实现进度条的库:Progress库、tqdm库、alive-progress库和PySimpleGUI库,其中前三个是文本进度条库,最后一个是可以在GUI上运行的进度条。

1、Progress库

Progress是一种文本进度条库,库详细说明参加GitHub

使用库之前需要进行安装,pip指令如下所示:

pip install progressbar2

实现总耗时1S的进度条 ,代码如下所示:

import time
import progressbar
p = progressbar.ProgressBar()
N = 10
# 加上进度,就是将range(N)放到ProgressBar()中
for i in p(range(N)):
  #每次延时0.1S
  time.sleep(0.1)

效果如下所示:

还可以设置为中文提示,代码如下所示:

import time
import progressbar
 
 
def custom_len(value):
  # These characters take up more space
  characters = {
    '进': 2,
    '度': 2,
  }
 
  total = 0
  for c in value:
    total += characters.get(c, 1)
 
  return total
 
 
bar = progressbar.ProgressBar(
  widgets=[
    '进度: ',
    progressbar.Bar(),
    ' ',
    progressbar.Counter(format='%(value)02d/%(max_value)d'),
  ],
  len_func=custom_len,
)
for i in bar(range(10)):
  time.sleep(0.1)

效果如下所示:

2、tqdm库

tqdm库消耗资源很低,每次迭代大约60ns(gui = True时为80ns),并且已针对性能下降进行了单元测试。完善的ProgressBar具有800ns / iter的开销,库详细说明参加GitHub

使用库之前需要进行安装,pip指令如下所示:

pip install tqdm

实现总耗时1S的进度条 ,代码如下所示:

import time
from tqdm import tqdm
from tqdm._tqdm import trange
N = 10
for i in tqdm(range(N)):
  time.sleep(0.1)

效果如下所示:

不仅如此, tqdm库在实现进度条的同时还可以遍历迭代的对象,做到高效率工作,例如遍历列表["a", "b", "c", "d"]的同时实现进度条,代码如下所示:

from tqdm import tqdm
import time
 
text = ""
for char in tqdm(["a", "b", "c", "d"]):
  time.sleep(0.1)
  text = text + char
print(text)

效果如下所示:

3、alive-progress库

alive-progress库是一种具有动态效果的智能进度条,库详细说明参加GitHub

使用库之前需要进行安装,pip指令如下所示:

pip install alive-progress

实现总耗时10S的动态效果进度条 ,代码如下所示:

from alive_progress import alive_bar
import time
items = range(10)         # retrieve your set of items
with alive_bar(len(items)) as bar:  # declare your expected total
  for item in items:        # iterate as usual
    # process each item
    bar()            # call after consuming one item
    time.sleep(1)

效果如下所示:

4、PySimpleGUI

PySimpleGUI库是基于Tkinter、Remi、wxPython和PyQt库GUI库,我们可以基于它实现在GUI中添加进度条,当然这只是抛砖引玉,小伙伴们可以使用自己喜爱的GUI库实现进度条设计,库详细说明参加GitHub

使用库之前需要进行安装,pip指令如下所示:

pip install pysimplegui

实现总耗时10S的动态GUI效果进度条 ,代码如下所示:

import PySimpleGUI as sg
import time
items = range(10)  
for i, item in enumerate(items): 
 sg.one_line_progress_meter('Progress Meter', i+1, len(items), '-key-') 
 time.sleep(1)

效果如下所示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python3 微信支付(小程序支付)V3接口的实现

    Python3 微信支付(小程序支付)V3接口的实现

    本文主要介绍了Python3 微信支付(小程序支付)V3接口的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Python批量将Word文件转为PDF文件的实现示例

    Python批量将Word文件转为PDF文件的实现示例

    如果想要批量把Word文档转换为PDF文档,我们可以使用第三方模块win32com,本文就来详细的介绍一下Python批量将Word文件转为PDF文件的实现示例,感兴趣的可以了解一下
    2023-08-08
  • 深入解析Python编程中JSON模块的使用

    深入解析Python编程中JSON模块的使用

    这篇文章主要介绍了深入解析Python编程中JSON模块的使用,举例讲解了如何使用Python解析JSON数据,需要的朋友可以参考下
    2015-10-10
  • Python3编码问题 Unicode utf-8 bytes互转方法

    Python3编码问题 Unicode utf-8 bytes互转方法

    今天小编就为大家分享一篇Python3编码问题 Unicode utf-8 bytes互转方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • python使用smtplib模块发送邮件

    python使用smtplib模块发送邮件

    这篇文章主要为大家详细介绍了python使用smtplib模块发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 分享Pandas库中的一些宝藏函数transform()

    分享Pandas库中的一些宝藏函数transform()

    Pandas具有很多强大的功能,transform就是其中之一,利用它可以高效地汇总数据且不改变数据行数,transform是一种什么数据操作?如果熟悉SQL的窗口函数,就非常容易理解了
    2021-09-09
  • Python接口自动化测试框架运行原理及流程

    Python接口自动化测试框架运行原理及流程

    这篇文章主要介绍了Python接口自动化测试框架运行原理及流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • python字符串的常用操作方法小结

    python字符串的常用操作方法小结

    这篇文章主要为大家详细介绍了python字符串的常用操作方法,如字符串的替换、删除、截取、复制、连接、比较、查找、分割等,需要的朋友可以参考下
    2016-05-05
  • Django debug为True时,css加载失败的解决方案

    Django debug为True时,css加载失败的解决方案

    这篇文章主要介绍了Django debug为True时,css加载失败的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Python tkinter中四个常用按钮的用法总结

    Python tkinter中四个常用按钮的用法总结

    tkinter中有四个控件被冠以Button之名,分别是:Button, Checkbutton, Radiobutton, Menubutton,下面小编就来和大家聊聊它们的具体用法,感兴趣的可以学习一下
    2023-09-09

最新评论