Python实现采用进度条实时显示处理进度的方法


Posted in Python onDecember 19, 2017

本文实例讲述了Python实现采用进度条实时显示处理进度的方法。分享给大家供大家参考,具体如下:

前言

在大多数时候,我们的程序会一直进行循环处理。这时候,我们非常希望能够知道程序的处理进度,由此来决定接下来该做些什么。接下来告诉大家如何简单又漂亮的实现这一功能。

如何使用这个类

使用这个类很简单,只需要三步即可完成,如下:

process_bar = ShowProcess(max_steps) # 1.在循环前定义类的实体, max_steps是总的步数
for i in range(max_steps + 1):
  process_bar.show_process()   # 2.显示当前进度
  time.sleep(0.05)
process_bar.close('done')      # 3.处理结束后显示消息

进度条的实现

由于很简单,直接上代码

#!/usr/local/lib
# -*- coding: UTF-8 -*-
import sys, time
class ShowProcess():
  """
  显示处理进度的类
  调用该类相关函数即可实现处理进度的显示
  """
  i = 0 # 当前的处理进度
  max_steps = 0 # 总共需要处理的次数
  max_arrow = 50 #进度条的长度
  # 初始化函数,需要知道总共的处理次数
  def __init__(self, max_steps):
    self.max_steps = max_steps
    self.i = 0
  # 显示函数,根据当前的处理进度i显示进度
  # 效果为[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]100.00%
  def show_process(self, i=None):
    if i is not None:
      self.i = i
    else:
      self.i += 1
    num_arrow = int(self.i * self.max_arrow / self.max_steps) #计算显示多少个'>'
    num_line = self.max_arrow - num_arrow #计算显示多少个'-'
    percent = self.i * 100.0 / self.max_steps #计算完成进度,格式为xx.xx%
    process_bar = '[' + '>' * num_arrow + '-' * num_line + ']'\
           + '%.2f' % percent + '%' + '\r' #带输出的字符串,'\r'表示不换行回到最左边
    sys.stdout.write(process_bar) #这两句打印字符到终端
    sys.stdout.flush()
  def close(self, words='done'):
    print ''
    print words
    self.i = 0
if __name__=='__main__':
  max_steps = 100
  process_bar = ShowProcess(max_steps)
  for i in range(max_steps + 1):
    process_bar.show_process()
    time.sleep(0.05)
  process_bar.close()

运行

按照主函数的方法调用此类即可,显示效果如下:

[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]100.00%
done

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现爬虫下载漫画示例
Feb 16 Python
python实现复制整个目录的方法
May 12 Python
Django框架中方法的访问和查找
Jul 15 Python
Python模块结构与布局操作方法实例分析
Jul 24 Python
pandas去除重复列的实现方法
Jan 29 Python
用python实现刷点击率的示例代码
Feb 21 Python
浅谈python3.6的tkinter运行问题
Feb 22 Python
python 单线程和异步协程工作方式解析
Sep 28 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
Mar 30 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
Python实现矩阵加法和乘法的方法分析
Dec 19 #Python
分析python切片原理和方法
Dec 19 #Python
python实现redis三种cas事务操作
Dec 19 #Python
Python2/3中urllib库的一些常见用法
Dec 19 #Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 #Python
Python random模块用法解析及简单示例
Dec 18 #Python
Python方法的延迟加载的示例代码
Dec 18 #Python
You might like
php下过滤HTML代码的函数
2007/12/10 PHP
追求程序速度,而不是编程的速度
2008/04/23 PHP
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
php截取字符串函数分享
2015/02/02 PHP
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
JavaScript类的写法
2016/09/17 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
Python学习资料
2007/02/08 Python
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
浅谈Python的异常处理
2016/06/19 Python
Python后台开发Django会话控制的实现
2019/04/15 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
keras .h5转移动端的.tflite文件实现方式
2020/05/25 Python
10分钟理解CSS3 Grid布局
2018/12/20 HTML / CSS
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
高考自主招生自荐信
2013/10/20 职场文书
打造完美自荐信
2014/01/24 职场文书
教师个人剖析材料
2014/02/05 职场文书
餐饮部总监岗位职责范文
2014/02/13 职场文书
法律进机关实施方案
2014/03/12 职场文书
揭牌仪式主持词
2014/03/19 职场文书
火箭队口号
2014/06/18 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
红与黑读书笔记
2015/06/29 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫