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定时杀进程
Jun 06 Python
Python操作使用MySQL数据库的实例代码
May 25 Python
Python使用QRCode模块生成二维码实例详解
Jun 14 Python
scrapy爬虫完整实例
Jan 25 Python
python matplotlib 在指定的两个点之间连线方法
May 25 Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
Nov 28 Python
Python2.x与3​​.x版本有哪些区别
Jul 09 Python
Python 实现简单的客户端认证
Jul 29 Python
详解Python 最短匹配模式
Jul 29 Python
Python如何发送与接收大型数组
Aug 07 Python
pycharm 如何查看某一函数源码的快捷键
May 12 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全排列递归算法代码
2012/10/09 PHP
php无限遍历文件夹示例分享
2014/03/04 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
php中错误处理操作实例分析
2019/08/23 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
sina的lightbox效果。
2007/01/09 Javascript
javascript 数组学习资料收集
2010/04/11 Javascript
js+css在交互上的应用
2010/07/18 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
javascript dom追加内容实现示例
2013/09/21 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
2016/10/24 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
vue组件name的作用小结
2018/05/23 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
python实现梯度法 python最速下降法
2020/03/24 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
新书吧创业计划书
2014/01/31 职场文书
棉花姑娘教学反思
2014/02/15 职场文书
安全大检查实施方案
2014/02/22 职场文书
同意迁入证明模板
2014/10/26 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
新教师教学工作总结
2015/08/14 职场文书
军训决心书范文
2015/09/22 职场文书
MySQL中使用or、in与union all在查询命令下的效率对比
2021/05/26 MySQL
JavaScript执行机制详细介绍
2021/12/06 Javascript