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开发之函数定义实例分析
Nov 12 Python
Python实现二叉树结构与进行二叉树遍历的方法详解
May 24 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
Apr 02 Python
Python代码块批量添加Tab缩进的方法
Jun 25 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
Nov 06 Python
Python正则表达式和re库知识点总结
Feb 11 Python
Python 分享10个PyCharm技巧
Jul 13 Python
django 信号调度机制详解
Jul 19 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
Oct 14 Python
python 解决pycharm运行py文件只有unittest选项的问题
Sep 01 Python
Django中的DateTimeField和DateField实现
Feb 24 Python
浅谈Python列表嵌套字典转化的问题
Apr 07 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
php将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
php+mysql实现简单的增删改查功能
2015/07/13 PHP
PHP设置images目录不充许http访问的方法
2016/11/01 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
Python实现GUI学生信息管理系统
2020/04/05 Python
Atom的python插件和常用插件说明
2018/07/08 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
基于tensorflow for循环 while循环案例
2020/06/30 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
在家更换处方镜片:Lensabl
2019/05/01 全球购物
The North Face意大利官网:服装、背包和鞋子
2020/06/17 全球购物
机电专业毕业生推荐信
2013/11/10 职场文书
公司市场部岗位职责
2013/12/02 职场文书
实习推荐信
2014/05/10 职场文书
企业安全生产月活动总结
2014/07/05 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
环保证明
2015/06/23 职场文书
分析Java中Map的遍历性能问题
2021/06/26 Java/Android