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发送邮件实例
Jan 10 Python
Django1.9 加载通过ImageField上传的图片方法
May 25 Python
浅谈Python里面小数点精度的控制
Jul 16 Python
django-filter和普通查询的例子
Aug 12 Python
Django 在iframe里跳转顶层url的例子
Aug 21 Python
python多进程重复加载的解决方式
Dec 13 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
Dec 23 Python
python shell命令行中import多层目录下的模块操作
Mar 09 Python
如何实现一个python函数装饰器(Decorator)
Oct 12 Python
Python入门基础之数字字符串与列表
Feb 01 Python
python中threading和queue库实现多线程编程
Feb 06 Python
pandas apply使用多列计算生成新的列实现示例
Feb 24 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/06/13 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
PHP英文字母大小写转换函数小结
2014/05/03 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
php身份证号码检查类实例
2015/06/18 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
js全屏显示显示代码的三种方法
2013/11/11 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
浅析Jquery操作select
2016/12/13 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
2020/08/22 Javascript
Fiddler如何抓取手机APP数据包
2016/01/22 Python
浅谈python字符串方法的简单使用
2016/07/18 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
python中验证码连通域分割的方法详解
2018/06/04 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
实例介绍Python中整型
2019/02/11 Python
Pandas分组与排序的实现
2019/07/23 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
2017/08/24 HTML / CSS
原装进口全世界:天猫国际
2016/08/03 全球购物
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
Lookfantastic日本官网:英国知名护肤、化妆品和头发护理购物网站
2018/04/21 全球购物
酒店总经理助理职责
2014/02/12 职场文书
促销活动总结报告
2014/04/26 职场文书
学校安全生产承诺书
2014/05/23 职场文书
中标通知书范本
2015/04/17 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS