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编程开发之类型转换convert实例分析
Nov 13 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
使用Python多线程爬虫爬取电影天堂资源
Sep 23 Python
python 实现对文件夹内的文件排序编号
Apr 12 Python
Python通过paramiko远程下载Linux服务器上的文件实例
Dec 27 Python
对python中Json与object转化的方法详解
Dec 31 Python
查看python安装路径及pip安装的包列表及路径
Apr 03 Python
python多线程并发及测试框架案例
Oct 15 Python
pytorch构建多模型实例
Jan 15 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
Jan 16 Python
Django中ORM的基本使用教程
Dec 22 Python
Python爬虫之Selenium库的使用方法
Jan 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
typecho插件编写教程(五):核心代码
2015/05/28 PHP
thinkPHP显示不出验证码的原因与解决方法分析
2017/05/20 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
删除条目时弹出的确认对话框
2014/06/05 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
jQuery过滤选择器详解
2015/01/13 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
React如何将组件渲染到指定DOM节点详解
2017/09/08 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
深入了解Hybrid App技术的相关知识
2019/07/17 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
微信小程序实现侧边栏分类
2019/10/21 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
在漏洞利用Python代码真的很爽
2007/08/26 Python
python读取Android permission文件
2013/11/01 Python
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
python opencv实现图像边缘检测
2019/04/29 Python
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
学生安全教育材料
2014/02/14 职场文书
爱祖国演讲稿
2014/05/04 职场文书
学生检讨书怎么写
2014/10/09 职场文书
刑事附带民事上诉状
2015/05/23 职场文书
工程款催款函
2015/06/24 职场文书
治庸问责工作总结
2015/08/11 职场文书
优秀员工演讲稿
2019/06/21 职场文书