实现python程序的进度条、百分比、运行时间、中断控制

  • A+
所属分类:Python

实现python程序的进度条、百分比、运行时间、中断控制

相信读者们也会遇到在执行一个比较耗时的程序时,想了解程序的进展,比如可以看到程序的进度条、完成的百分比,运行时间,甚至等不及了,手动中断程序后还可以看到程序的进展。其实这个功能已经有类似的实现了。但因为功能简单,其实只需要标准库模块即可实现,在这里笔者就简单地实现了这个功能。

运行环境:win/linux python3

进度条

首先,我们利用sys模块的sys.stdout.write()函数来输出进度条,这个函数与print()的不同之处是,其不会在输出语句的末尾自动加上'\n'。不仅如此,我们还有在输出的语句末尾,手动加上'\r',回到当前行的最左边,准备下一次的输出。

其次,我们利用sys.stdout.flush()函数来啊强制刷新缓存区,输出缓存区的内容。

代码:

百分比

计算出完成进度百分比后,用format控制输出格式,{:.1%}在表示成百分数后,四舍五入保留小数点后一位(如:54.6%)。另外,为了保证百分比在输出的固定位置,笔者在*号和百分比中间填充空格,保证*号和空格之和固定。

代码:

运行时间

添加格式化的运行时间统计,详见优雅地显示程序运行时间:显示程序运行小时、分钟、秒等

中断控制

我们让程序被手动中断后,仍然计算程序完成的时间。当然还可以加入其他的动作。

完成的程序代码:

 

许龙涛

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: