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


Posted in Python onJanuary 06, 2020

在项目开发过程中加载、启动、下载项目难免会用到进度条,如何使用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)

效果如下所示:

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

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

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)

效果如下所示:

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

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)

效果如下所示:

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

不仅如此, 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)

效果如下所示:

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

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)

效果如下所示:

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

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)

效果如下所示:

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

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

Python 相关文章推荐
python实现系统状态监测和故障转移实例方法
Nov 18 Python
Python中的ctime()方法使用教程
May 22 Python
Python实现提取谷歌音乐搜索结果的方法
Jul 10 Python
python实现多线程的方式及多条命令并发执行
Jun 07 Python
python爱心表白 每天都是浪漫七夕!
Aug 18 Python
Python3列表内置方法大全及示例代码小结
May 10 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
详解Python修复遥感影像条带的两种方式
Feb 23 Python
在python3中使用shuffle函数要注意的地方
Feb 28 Python
python 数据分析实现长宽格式的转换
May 18 Python
Python tempfile模块生成临时文件和临时目录
Sep 30 Python
Django框架模板用法详解
Jun 10 Python
基于python+selenium的二次封装的实现
Jan 06 #Python
Python使用Tkinter实现滚动抽奖器效果
Jan 06 #Python
Python使用Tkinter实现转盘抽奖器的步骤详解
Jan 06 #Python
pytorch 实现在预训练模型的 input上增减通道
Jan 06 #Python
Python 将json序列化后的字符串转换成字典(推荐)
Jan 06 #Python
Python tkinter三种布局实例详解
Jan 06 #Python
Python有参函数使用代码实例
Jan 06 #Python
You might like
php实现的mongodb操作类
2015/05/28 PHP
Javascript快速排序算法详解
2014/12/03 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
2015/11/04 Javascript
jQuery使用each方法与for语句遍历数组示例
2016/06/16 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
Python3实现连接SQLite数据库的方法
2014/08/23 Python
Python字符串和文件操作常用函数分析
2015/04/08 Python
Python 常用string函数详解
2016/05/30 Python
pandas中Timestamp类用法详解
2017/12/11 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
opencv python 对指针仪表读数识别的两种方式
2021/01/14 Python
暇步士官网:Hush Puppies
2016/09/22 全球购物
在购买印度民族服饰:Soch
2020/09/15 全球购物
sort命令的作用和用法
2013/08/25 面试题
化学教师教学反思
2014/01/17 职场文书
生物科学专业职业规划书范文
2014/02/11 职场文书
数学教学随笔感言
2014/02/17 职场文书
文明之星事迹材料
2014/05/09 职场文书
环保标语口号
2014/06/13 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
2015年度招聘工作总结
2015/05/28 职场文书
巴黎圣母院观后感
2015/06/10 职场文书
修辞手法有哪些?
2019/08/29 职场文书
OpenCV-Python实现油画效果的实例
2021/06/08 Python