Python实现输出程序执行进度百分比的方法

 更新时间:2017年09月16日 12:03:42   作者:yongh701  
这篇文章主要介绍了Python实现输出程序执行进度百分比的方法,涉及Python数值运算与系统输出相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python实现输出程序执行进度百分比的方法。分享给大家供大家参考,具体如下:

对于一些大型的Python程序,我们需要在命令行输出其百分比,显得更加友好,以免被人误会程序陷入死循环、假死的窗体。
关键是利用到不换行的输出符\r,\r的输出,将直接覆盖掉此行的内容。

比如如下的程序,是一个i从0自加的十万的过程,即使对于现在高性能的CPU也是需要几秒的时间的,我们要输出其执行时候的百分比,可以在引入sys这个包之后,利用到sys.stdout.write输出,避免原生态的print自带的\n影响大局。同时要控制百分比的小数位为4。程序执行的百分比恰好为i当前的值除以值为十万的total。

#-*-coding:utf-8-*-
import sys;
total=100000
for i in range(0,total):
  percent=float(i)*100/float(total)
  sys.stdout.write("%.4f"%percent);
  sys.stdout.write("%\r");
  sys.stdout.flush();
sys.stdout.write("100%!finish!\r");
sys.stdout.flush();

程序运行结果如下:

但是,这里i每自增一次就要求当前的运行的百分比,把原本100000次的浮点运算徒然增加到二十万次,同时要刷新100000次的屏幕,非常不合理,因此对于程序,可以做如下的改进,运行百分比仅保留2位小数,同时i每累积100才进行百分比输出,程序修改之后如下:

#-*-coding:utf-8-*-
import sys;
total=100000
for i in range(0,total):
  if i%100==0:
    percent=float(i)*100/float(total)
    sys.stdout.write("%.2f"%percent);
    sys.stdout.write("%\r");
    sys.stdout.flush();
sys.stdout.write("100%!finish!\r");
sys.stdout.flush();

从求运行百分比的100000次的浮点运算改为100000次的条件运算,同时仅要刷新屏幕1000次,程序的运行耗时将大大减少。

同时,这里值得注意的是,Eclipse中的Pydev中的控制台,对于\r依然是处理成换行符,使得输出变成如下的样子,这里没有办法了!

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Python执行时间的几种计算方法

    Python执行时间的几种计算方法

    这篇文章主要介绍了Python执行时间的几种计算方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Python随机生成数据后插入到PostgreSQL

    Python随机生成数据后插入到PostgreSQL

    本文主要介绍利用python的random库生成随机数,然后插入到PostgreSQL数据库中,有需要的可以参考学习。
    2016-07-07
  • Python中实现switch功能实例解析

    Python中实现switch功能实例解析

    这篇文章主要介绍了Python中实现switch功能实例解析,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 使用Python实现图像有效压缩的方法

    使用Python实现图像有效压缩的方法

    在数字时代,图像作为信息传递的重要媒介,在网页设计、移动应用和多媒体制作中扮演着不可或缺的角色,本文将详细介绍如何使用Python,一个功能强大且易于学习的编程语言,来实现图像的有效压缩,感兴趣的朋友可以参考下
    2024-03-03
  • python3监控CentOS磁盘空间脚本

    python3监控CentOS磁盘空间脚本

    这篇文章主要为大家详细介绍了Python3监控CentOS磁盘空间脚本,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Python中iter函数的具体使用

    Python中iter函数的具体使用

    Python中iter函数用于创建迭代器对象,可以遍历可迭代对象的元素,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • Python实现批量将图像png格式转为npy格式

    Python实现批量将图像png格式转为npy格式

    在进行深度学习处理时,有些的代码处理的数据格式为npy,但是常常有的数据格式为png,因此本文就来介绍一下Python如何实现图像批量png格式转为npy格式,需要的可以参考下
    2023-12-12
  • 使用Python脚本对Linux服务器进行监控的教程

    使用Python脚本对Linux服务器进行监控的教程

    这篇文章主要介绍了使用Python程序对Linux服务器进行监控的教程,主要基于Python2.7的版本,需要的朋友可以参考下
    2015-04-04
  • python3.7.3版本和django2.2.3版本是否可以兼容

    python3.7.3版本和django2.2.3版本是否可以兼容

    在本篇文章里小编给大家整理的是一篇关于python3.7.3版本和django2.2.3版本是否可以兼容的相关知识点内容,有兴趣的朋友们可以学习下。
    2020-09-09
  • Windows直接运行python程序的两种方法

    Windows直接运行python程序的两种方法

    本文主要介绍了Windows直接运行python程序,包括新建bat脚本和新建vbs脚本,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-03-03

最新评论