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中声明只包含一个元素的元组数据方法
Aug 25 Python
Python实现检测服务器是否可以ping通的2种方法
Jan 01 Python
python操作sqlite的CRUD实例分析
May 08 Python
Python运算符重载详解及实例代码
Mar 07 Python
python使用mysql的两种使用方式
Mar 07 Python
Django如何自定义model创建数据库索引的顺序
Jun 20 Python
python pytest进阶之conftest.py详解
Jun 27 Python
python plotly画柱状图代码实例
Dec 13 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
Feb 28 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
Jun 29 Python
聊聊python中的异常嵌套
Sep 01 Python
Python 内置函数速查表一览
Jun 02 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制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
php curl常用的5个经典例子
2017/01/20 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
jQuery使用andSelf()来包含之前的选择集
2014/05/19 Javascript
吐槽一下我所了解的Node.js
2014/10/08 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
2015/06/10 Javascript
基于jquery实现放大镜效果
2015/08/17 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
jquery实现九宫格大转盘抽奖
2015/11/13 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
jQuery绑定事件-多种实现方式总结
2016/05/09 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
js实现3D旋转效果
2020/08/18 Javascript
vue中activated的用法
2021/01/03 Vue.js
收集的几个Python小技巧分享
2014/11/22 Python
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
Python3处理文件中每个词的方法
2015/05/22 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
Python实现FM算法解析
2019/06/18 Python
浅谈Python3实现两个矩形的交并比(IoU)
2020/01/18 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
情侣吵架检讨书
2014/02/05 职场文书
教师个人自我评价范文
2014/04/13 职场文书
浪漫的婚礼主持词
2015/06/30 职场文书
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python