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获取脚本所在目录的正确方法
Apr 15 Python
Python创建xml文件示例
Mar 22 Python
Python实现查找匹配项作处理后再替换回去的方法
Jun 10 Python
Python装饰器知识点补充
May 28 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
Jul 04 Python
解决python3运行selenium下HTMLTestRunner报错的问题
Dec 27 Python
Python3字符串encode与decode的讲解
Apr 02 Python
Python小白必备的8个最常用的内置函数(推荐)
Apr 03 Python
Django的性能优化实现解析
Jul 30 Python
Python如何实现动态数组
Nov 02 Python
Python正则表达式高级使用方法汇总
Jun 18 Python
基于Python爬取京东双十一商品价格曲线
Oct 23 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 基于文件头的文件类型验证类函数
2012/05/01 PHP
php笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
使用angular写一个hello world
2015/01/23 Javascript
浅谈js中的闭包
2015/03/16 Javascript
在Ubuntu系统上安装Ghost博客平台的教程
2015/06/17 Javascript
javascript文本模板用法实例
2015/07/31 Javascript
javascript中的3种继承实现方法
2016/01/27 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
2019/11/13 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
Python 列表list使用介绍
2014/11/30 Python
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
Python标准库之collections包的使用教程
2017/04/27 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
2019/07/11 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
文化与传播毕业生求职信
2014/03/09 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
秋冬农业生产标语
2014/10/09 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书