6行Python代码实现进度条效果(Progress、tqdm、alive-progress和PySimpleGUI库)
作者:不脱发的程序猿 发布时间:2022-09-15 16:00:46
在项目开发过程中加载、启动、下载项目难免会用到进度条,如何使用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)
效果如下所示:
来源:https://blog.csdn.net/m0_38106923/article/details/103814795
猜你喜欢
- 英文文档:staticmethod(function)Return a static method for function.A stati
- 又发一个js版幻灯片,接口比较少,但功能和外观都还不错的,可自定义切换时间:)method: adRotator.initialize(容器
- 1、善用css缩写可以减少页面文件大小,提高下载速度,同时使代码简洁可读。代码:div{ b
- strstr 定义和用法注释:该函数是二进制安全的。语法strstr(string,search,before_search)参数
- 最近开始学习Python,但只限于看理论,编几行代码,觉得没有意思,就想能不能用Python编写可视化的界面。遂查找了相关资料,发现了PyQ
- 环境准备好了!我们怎么使用这些东东?IIS用组件初始化是用这个过程Public Sub OnStartPage给个使用asp组件的例子:数字
- 最近看到了两行 JavaScript 代码,很受启发。1. 封装 DOM 属性在 JavaScript 中,我们可以获取HTML元素的属性值
- 本文实例讲述了Python Django模板之模板过滤器与自定义模板过滤器。分享给大家供大家参考,具体如下:模板过滤器过滤器用于对模板变量进
- 1. 定义本质是函数,用来装饰其他函数,为其他函数添加附加功能2. 原则a. 不能修改被装饰函数的源代码b. 不能修改被装饰的函数的调用方式
- 可在图片连接后面加上宽和高,如:width="150" height="50"<h
- 直接以数值固定大小根据屏幕大小固定大小禁止最大化按钮MainWindow.setWindowFlags(QtCore.Qt.WindowMi
- 如下所示:from pandas_datareader import data, wbfrom datetime import dateti
- 先谈一下面包屑的由来:很久很久以前,在大森林的边上住着一个贫穷的樵夫,他妻子和两个孩子与他相依为命。他的儿子名叫汉赛尔,女儿名叫格莱特。后来
- 如何在线修改表?具体代码如下:<%Set conn1 = Server.CreateObject(&qu
- 目录实验环境依赖项安装编程实现浏览器有一个可以用于展示网页的窗口代码总结实验环境操作系统:Linux Mint编辑器:vim编程语言:pyt
- 步骤一:下载对应的CURL压缩包并在windows上配置好环境变量进入CURL官网下载对应的windows压缩包。地址:点击打开链接把下载好
- CREATE TABLE table1( [ID] [bigint] IDENTITY(1,1) NOT NULL, [Name] [nva
- 一、Tensorlow结构import tensorflow as tfimport numpy as np#创建数据x_data = np
- 一、Pycharm下载与安装附:Python、Pycharm和Anaconda的关系:Python是一种解释型、面向对象、动态数据类型的高级
- 本文主要研究的是用Python语言建立Map写Excel表的相关代码,具体如下。前言:我们已经能够很熟练的写Excel表相关的脚本了。大致的