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 相关文章推荐
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
python使用folium库绘制地图点击框
Sep 21 Python
Python中将两个或多个list合成一个list的方法小结
May 12 Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 Python
python爬虫-模拟微博登录功能
Sep 12 Python
python实现计算器功能
Oct 31 Python
Python之Matplotlib文字与注释的使用方法
Jun 18 Python
Python 日期与时间转换的方法
Aug 01 Python
记一次Django响应超慢的解决过程
Sep 17 Python
python中print格式化输出的问题
Apr 16 Python
教你用Python写一个植物大战僵尸小游戏
Apr 25 Python
使用tensorflow 实现反向传播求导
May 26 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把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
用php守护另一个php进程的例子
2015/02/13 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
2015/12/25 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
Vue.js每天必学之内部响应式原理探究
2016/09/07 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
jQuery-mobile事件监听与用法详解
2016/11/23 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
python判断windows系统是32位还是64位的方法
2015/05/11 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
2019/08/28 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
在keras 中获取张量 tensor 的维度大小实例
2020/06/10 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
详解python UDP 编程
2020/08/24 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
机械工程师求职自我评价
2013/09/23 职场文书
生日主持词
2014/03/20 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技