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中mechanize库的简单使用示例
Jan 10 Python
在Python下利用OpenCV来旋转图像的教程
Apr 16 Python
深入理解Python3 内置函数大全
Nov 23 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
Apr 21 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 Python
[原创]Python入门教程4. 元组基本操作
Oct 31 Python
Python读取xlsx文件的实现方法
Jul 04 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
python中def是做什么的
Jun 10 Python
在Mac中配置Python虚拟环境过程解析
Jun 22 Python
python中return不返回值的问题解析
Jul 22 Python
python - timeit 时间模块
Apr 06 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 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
php中json_encode中文编码问题分析
2011/09/13 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
PHP Ajax实现无刷新附件上传
2016/08/17 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
PHP代码加密的方法总结
2020/03/13 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
Bootstrap Table 搜索框和查询功能
2017/11/30 Javascript
使用JSON格式提交数据到服务端的实例代码
2018/04/01 Javascript
微信小程序wx.request的简单封装
2019/11/13 Javascript
[05:06]2017亚洲邀请赛DAC回顾片
2017/04/19 DOTA
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
Django-Rest-Framework 权限管理源码浅析(小结)
2018/11/12 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
CSS的background属性及CSS3的背景图片设置总结
2016/06/13 HTML / CSS
html5桌面通知(Web Notifications)实例解析
2014/07/07 HTML / CSS
高中毕业自我鉴定范文
2013/10/02 职场文书
护士岗位职责
2014/02/16 职场文书
院领导写的就业推荐信
2014/03/09 职场文书
岗位聘任书范文
2014/03/29 职场文书
反腐倡廉警示教育活动总结
2014/05/05 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
2015年全民创业工作总结
2015/07/23 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书