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语言中的按位运算符
Nov 26 Python
python实现猜数字游戏(无重复数字)示例分享
Mar 29 Python
在Python中用has_key()方法查找键是否存在的教程
May 21 Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
python读取二进制mnist实例详解
May 31 Python
使用python将大量数据导出到Excel中的小技巧分享
Jun 14 Python
Linux下安装python3.6和第三方库的教程详解
Nov 09 Python
详解使用django-mama-cas快速搭建CAS服务的实现
Oct 30 Python
numpy np.newaxis 的实用分享
Nov 30 Python
python爬虫实现获取下一页代码
Mar 13 Python
Python类class参数self原理解析
Nov 19 Python
Python爬虫入门案例之回车桌面壁纸网美女图片采集
Oct 16 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
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
2008/03/28 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
探讨PHP使用eAccelerator的API开发详解
2013/06/09 PHP
php绘制圆形的方法
2015/01/24 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
2015/02/17 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo
2016/09/01 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
Vue中函数防抖节流的理解及应用实现
2020/04/24 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
python判断端口是否打开的实现代码
2013/02/10 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
python list元素为tuple时的排序方法
2018/04/18 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
python aiohttp的使用详解
2019/06/20 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
竞选演讲稿范文
2013/12/28 职场文书
机关办公室岗位职责
2014/04/16 职场文书
总经理人事任命书
2014/06/05 职场文书
社区娱乐活动方案
2014/08/21 职场文书
师范生小学见习总结
2015/06/23 职场文书
2015大一新生军训感言
2015/08/01 职场文书