1、手写进度条
import time
scale = 50
print("开始执行".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,"-"))
2、Tqdm
import time
from progress.bar import IncrementalBar
mylist = [1,2,3,4,5,6,7,8]
bar = IncrementalBar('Countdown', max = len(mylist))
for item in mylist:
bar.next()
time.sleep(1)
bar.finish()
tqdm模块参数
class tqdm():
"""
Decorate an iterable object, returning an iterator which acts exactly
like the original iterable, but prints a dynamically updating
progressbar every time a value is requested.
"""
def __init__(self, iterable=None, desc=None, total=None, leave=True,
file=None, ncols=None, mininterval=0.1,
maxinterval=10.0, miniters=None, ascii=None, disable=False,
unit='it', unit_scale=False, dynamic_ncols=False,
smoothing=0.3, bar_format=None, initial=0, position=None,
postfix=None, unit_divisor=1000):
tqdm针对jupyter notebook添加了专门的进度条美化方法
from tqdm.notebook import tqdm
import time
for i in tqdm(range(100),desc='example:'):
time.sleep(0.01)
3、progressbar2
import progressbar
bar = progressbar.ProgressBar(widgets=[
' [', progressbar.Timer(), '] ',
progressbar.Bar(),
' (', progressbar.ETA(), ') ',
])
for i in bar(range(100)):
time.sleep(0.1)
4、progress
from progress.bar import Bar
bar = Bar('Processing', max=20)
for i in range(20):
# Do some work
bar.next()
bar.finish()
5、alive_progress
from alive_progress import show_bars
show_bars() # 查看内置 bar 样式
from alive_progress import show_spinners
show_spinners()# 查看内置 spinner 样式
import time
from alive_progress import alive_bar
# retrieve your set of items
items = range(100)
# declare your expected total
with alive_bar(len(items)) as bar:
# iterate as usual
for item in items:
# process each item
bar()
time.sleep(0.1)
6、PySimpleGUI
import PySimpleGUI as sg
import time
mylist = [1,2,3,4,5,6,7,8]
for i, item in enumerate(mylist):
sg.one_line_progress_meter('This is my progress meter!', i+1, len(mylist), '-key-')
time.sleep(1)
7、rich
from rich.progress import track
def do_step(step):
time.sleep(0.1)
for step in track(range(100)):
do_step(step)
参考文档:
https://pypi.org/project/tqdm/
https://tqdm.github.io/
https://pypi.org/project/progressbar2/
https://progressbar-2.readthedocs.io/en/latest/
https://pypi.org/project/progress/1.5/
https://github.com/rsalmei/alive-progress
https://pysimplegui.readthedocs.io/en/latest/
https://github.com/willmcgugan/rich
文章转载自细说数据,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




