文本进度条
采用字符串方式打印可以动态变化的文本进度条
- 进度条需要能在一行中逐渐变化
- 采用sleep()函数模拟一个持续的进度
版本一:简单的开始
# TextProBarV1.py
import time
scale = 10
print("------执行开始------")
for i in range(scale + 1):
a = "*" * i
b = "-" * (scale - i)
c = (i / scale) * 100
print("{:^3.0f}%[{}->{}]".format(c, a, b))
time.sleep(0.1)
print("------执行结束------")
版本二:单行动态刷新
刷新的本质:用后打印的字符覆盖之前的字符
- 每次输出之后不能换行:print()需要被控制,end参数
- 每次输出之后要能回退:\r 光标返回到本行行首
# TextProBarV2.py
import time
for i in range(101):
print("\r{:3}%".format(i), end="")
time.sleep(0.1)
- Print(),默认输出后在后面增加一个换行。end作用:print输出完成后后面增加的信息。如果希望输出后增加一个其他东西,则end=”其他东西”,如果end=””,则输出完成后不换行,光标停在那当次输出字符串的后面
- \r,在打印字符串之前将光标移动到本行行首
- IDE不是运行程序的环境,是开发程序的环境,为保证开发环境效果,系统将\r屏蔽掉了。为保证运行效果,可打开Windows命令行工具:Windows键+R输入“cmd”输入文件地址和文件名回车 即可看到单行动态刷新的进度。或者在Pycharm或VS Code即可看到。