Python 进度条

Posted alumm0x

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 进度条相关的知识,希望对你有一定的参考价值。

我这里说明两种方式的进度条

0x00 使用 做输出结尾

先看个例子

import time
import sys

for s in range(11):
    print("[progess][{}{}]|{:.2%}%".format(s*"#", (10-s)*"=", s/10), end="
")
    time.sleep(0.5)

 上面例子关键点是输出字符串的结尾是回车符 ,就因为这个才能在原地更新进度

 知识补充:

     是换行,英文是New line
     是回车,英文是Carriage return
     机械打字机有回车和换行两个键作用分别是:
     1、换行就是把滚筒卷一格,不改变水平位置。
     2、回车就是把水平位置复位,不卷动滚筒。

因为回车符石复位,所以可以原地更新进度并显示

 

0x01 使用sys.stdout标准输出

直接上示例代码吧

import time
import sys

for s in range(11):
    sys.stdout.write("#")
    sys.stdout.flush()
    time.sleep(0.5)

 sys.stdout是标准输出,也可以做进度条的

这里需要注意的是:必须要flush,不然只会显示最后的结果,中间的进度更新看不到

为什么呢?

可以想象我们写文件吧,一般是先写到缓存中,缓存写满后再写到硬盘中,

为了安全,一般我们都会执行下flush强制将内容落到硬盘中;

上面进度条就是这样,刷新进度的时候要flush,不然看不到进度更新的。

 

最后进度条的展示设计这个要看个人了,简单也行,复杂也行。





以上是关于Python 进度条的主要内容,如果未能解决你的问题,请参考以下文章

自定义对话框片段内的进度条 - 如何从 AsyncTask 传递进度?

在recyclerview片段Reandroid中屏幕旋转后进度条不显示

css Bootstrap 3进度条片段

进度条不隐藏是当数据在片段中的recyclerview中加载时

用于 onActivityCreated 中通用图像加载器的片段中进度条的 NullPointerException

Python 进度条