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的Django框架的运行方式及处理流程
Apr 08 Python
Python的Django框架中的数据库配置指南
Jul 17 Python
python实现多线程的两种方式
May 22 Python
Python单例模式实例详解
Mar 01 Python
Python正确重载运算符的方法示例详解
Aug 27 Python
Python三级菜单的实例
Sep 13 Python
详解PyTorch批训练及优化器比较
Apr 28 Python
Python OpenCV实现视频分帧
Jun 01 Python
Python3爬虫关于识别检验滑动验证码的实例
Jul 30 Python
Python grequests模块使用场景及代码实例
Aug 10 Python
python如何编写类似nmap的扫描工具
Nov 06 Python
python实现的web监控系统
Apr 27 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
PHP实现文件安全下载
2006/10/09 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
jquery ajax请求实例深入解析
2012/11/26 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
JS功能代码集锦
2016/05/04 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
2016/07/28 Javascript
详解webpack与SPA实践之开发环境搭建
2017/12/18 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
vue中过滤器filter的讲解
2019/01/21 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
2019/08/17 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
2020/05/10 Javascript
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
Django 反向生成url实例详解
2019/07/30 Python
django创建超级用户过程解析
2019/09/18 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
什么是python的必选参数
2020/06/21 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
计算机应用与科学个人的自我评价
2013/11/15 职场文书
高中英语演讲稿范文
2014/04/24 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
普通话宣传标语
2014/06/26 职场文书
小学庆六一活动总结
2014/08/28 职场文书
班主任2015新年寄语
2014/12/08 职场文书
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python
python3 字符串str和bytes相互转换
2022/03/23 Python
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL