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中屏幕旋转后进度条不显示
进度条不隐藏是当数据在片段中的recyclerview中加载时