python动态进度条的实现代码

有时候我们需要使用print打印工作进度,正常使用print函数会导致刷屏的现象,举个最简单的例子,从1打印到10,每次停顿0.1秒

这样看起来很麻烦,有没有办法实现动态的进度显示呢?我们可以使用’\r’,这个命令可以使光标重新返回头部,之后设置end=”,取消python的打印自动换行的功能

import time
for i  in range(10):
    print(‘\r比例’ ,i/10,end=”)
    time.sleep(1)

便可以实现动态显示进度了

ps:下面看下用python实现单行动态刷新文本进度条

TextProBar.py

import time
scale = 50
print(R20;执行开始”.center(scale // 2,”-“))
start = time.perf_counter()
for i in range(scale + 1):
    a = “*” * i
    b = “.” * (scale – i)
    c = (i / scale) * 100
    dur = time.perf_counter() – start
    print(“\r{:^3.0f}%[{}->{}]{:.2f}s”.format(c,a,b,dur),end = “”)
    time.sleep(0.1)
print(“\n”+”执行结束”.center(scale // 2,”-“))

\r:可以使打印后的光标退回到之前的位置覆盖之前的字符,不过会被IDLE屏蔽。所以要用命令行`执行

(IDLE本身是编写程序的开发环境,并不是程序运行的主要环境。正常运行程序我们要么通过双击要么通过控制台,一般很少直接通过IDLE来运行的。由于IDLE被设定为开发环境,为了保证其中参数的运行效果,所以就把其中一个效果\r给屏蔽了)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。