目录
普通进度条
在代码迭代运行中可以自己进行统计计算,并使用格式化字符串输出代码运行进度
import sys
import time
for i in range(1, 101):
print("\r", end="")
print("下载进度{}%: ".format(i), "\33[1;91;43m▋\33[1;32;0m" * (i // 2), end="")
sys.stdout.flush()
time.sleep(0.05)
带时间进度条
import time
scale = 50
start = time.perf_counter()
for i in range(scale + 1):
a = "\33[1;91;101m▋\33[1;32;0m" * 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.05)
progress进度条
只需要定义迭代的次数、进度条类型并在每次迭代时告知进度条即可,
官方:https://pypi.org/project/progress
import time
from progress.bar import IncrementalBar
from progress.bar import Bar
i = 10
# bar = IncrementalBar('进度', max=1)
bar = Bar('进度', max=i, fill='\33[1;91;101m❤ \33[1;32;0m', suffix='%(percent)d%%')
for item in range(10):
bar.next()
time.sleep(1)
bar.finish()
alive_progress进度条
这个进度条多了一些动画效果,相关文档:https://github.com/rsalmei/alive-progress
import time
from alive_progress import alive_bar
items = range(100)
with alive_bar(total=len(items)) as bar:
for item in items:
bar()
time.sleep(0.1)
PySimpleGUI图形化进度条
import PySimpleGUI as sg
import time
num = 100
for i in range(num):
sg.one_line_progress_meter('任务下载进度', current_value=i, max_value=num, key='完成!', no_button=True, keep_on_top=True)
time.sleep(0.1)