Python实现采用进度条实时显示处理进度的方法


Posted in Python onDecember 19, 2017

本文实例讲述了Python实现采用进度条实时显示处理进度的方法。分享给大家供大家参考,具体如下:

前言

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

如何使用这个类

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

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 相关文章推荐
python登录QQ邮箱发信的实现代码
Feb 10 Python
python 爬取微信文章
Jan 30 Python
详解Python中的array数组模块相关使用
Jul 05 Python
Python 递归函数详解及实例
Dec 27 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
Feb 24 Python
python 脚本生成随机 字母 + 数字密码功能
May 26 Python
python实现反转部分单向链表
Sep 27 Python
PyQt编程之如何在屏幕中央显示窗体的实例
Jun 18 Python
python判断自身是否正在运行的方法
Aug 08 Python
Python字典实现伪切片功能
Oct 28 Python
Python实现学生管理系统(面向对象版)
Jun 24 Python
Python pandas之求和运算和非空值个数统计
Aug 07 Python
Python实现矩阵加法和乘法的方法分析
Dec 19 #Python
分析python切片原理和方法
Dec 19 #Python
python实现redis三种cas事务操作
Dec 19 #Python
Python2/3中urllib库的一些常见用法
Dec 19 #Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 #Python
Python random模块用法解析及简单示例
Dec 18 #Python
Python方法的延迟加载的示例代码
Dec 18 #Python
You might like
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
php使用PDO操作MySQL数据库实例
2014/12/30 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
ES6中字符串string常用的新增方法小结
2017/11/07 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
js中的闭包实例展示
2018/11/01 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
Python help()函数用法详解
2014/03/11 Python
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
土耳其时尚购物网站:Morhipo
2017/09/04 全球购物
欧洲最大的滑雪假期供应商之一:Sunweb Holidays
2018/01/06 全球购物
应届生污水处理求职信
2013/11/06 职场文书
力学专业毕业生自荐信
2013/11/17 职场文书
保密协议书范本
2014/04/22 职场文书
论文指导教师评语
2014/04/28 职场文书
初中生300字旷课检讨书
2014/11/19 职场文书
教师个人考察材料
2014/12/16 职场文书
2015年预算员工作总结
2015/05/14 职场文书
毕业设计致谢语
2015/05/14 职场文书
2015小学师德工作总结
2015/07/21 职场文书
大学入学感言
2015/08/01 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js