Python进度条实时显示处理进度的示例代码


Posted in Python onJanuary 30, 2018

前言

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

如何使用这个类

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

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中random模块用法实例分析
May 19 Python
python实现对求解最长回文子串的动态规划算法
Jun 02 Python
在python中实现将一张图片剪切成四份的方法
Dec 05 Python
Python设计模式之简单工厂模式实例详解
Jan 22 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
Mar 01 Python
python3实现表白神器
Apr 09 Python
python3 mmh3安装及使用方法
Oct 09 Python
python实现画出e指数函数的图像
Nov 21 Python
PyCharm 2019.3发布增加了新功能一览
Dec 08 Python
Python气泡提示与标签的实现
Apr 01 Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 Python
Python 利用OpenCV给照片换底色的示例代码
Aug 03 Python
Python3生成手写体数字方法
Jan 30 #Python
python字符串的方法与操作大全
Jan 30 #Python
Python实现带参数与不带参数的多重继承示例
Jan 30 #Python
Python实现的随机森林算法与简单总结
Jan 30 #Python
Python决策树和随机森林算法实例详解
Jan 30 #Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
Jan 30 #Python
python使用Tkinter实现在线音乐播放器
Jan 30 #Python
You might like
Zerg兵种介绍
2020/03/14 星际争霸
用PHP生成html分页列表的代码
2007/03/18 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
2013/06/25 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
2018/03/31 PHP
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
2014/09/01 Javascript
javascript中indexOf技术详解
2015/05/07 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
基于JavaScript实现右键菜单和拖拽功能
2016/11/28 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
2017/02/27 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
详解webpack+angular2开发环境搭建
2017/06/28 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
es6 字符串String的扩展(实例讲解)
2017/08/03 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
Python学习笔记_数据排序方法
2014/05/22 Python
Python循环语句中else的用法总结
2016/09/11 Python
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
Python新手学习标准库模块命名
2020/05/29 Python
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
见习报告格式范文
2014/11/08 职场文书
少先队入队仪式主持词
2015/07/04 职场文书
大学毕业典礼致辞
2015/07/29 职场文书
PyQt5爬取12306车票信息程序的实现
2021/05/14 Python
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers