(python 进度条) Python 实现进度条的六种方式
在Python中实现进度条有多种方式,以下是六种常见的方法:
- 使用内置的
print
函数手动打印进度条
import time
import sys
def print_progress_bar(iteration, total, prefix='', suffix='', decimals=1, length=100, fill='█'):
percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
filled_length = int(length * iteration // total)
bar = fill * filled_length + '-' * (length - filled_length)
sys.stdout.write(f'\r{prefix} |{bar}| {percent}% {suffix}')
sys.stdout.flush()
if iteration == total:
print()
# 示例用法:
items = list(range(0, 57))
l = len(items)
# 初始调用函数以打印初始进度条
print_progress_bar(0, l, prefix = 'Progress:', suffix = 'Complete', length = 50)
for i, item in enumerate(items):
# 执行一些任务
time.sleep(0.1)
# 更新进度条
print_progress_bar(i + 1, l, prefix = 'Progress:', suffix = 'Complete', length = 50)
- 使用
tqdm
库
tqdm
是一个快速、可扩展的Python进度条库。
# 需要先安装tqdm库
# pip install tqdm
from tqdm import tqdm
import time
# 可以直接在for循环上使用tqdm()包装任何可迭代的对象
for i in tqdm(range(100)):
# 模拟任务执行
time.sleep(0.1)
- 使用
progress
库
progress
是另一个用于创建进度条的库。
# 需要先安装progress库
# pip install progress
from progress.bar import Bar
import time
bar = Bar('Processing', max=20)
for i in range(20):
# Do some work
time.sleep(1)
bar.next()
bar.finish()
- 使用
alive-progress
库
# 需要先安装alive-progress库
# pip install alive-progress
from alive_progress import alive_bar
import time
items = range(100) # replace with your real workload
with alive_bar(len(items)) as bar:
for item in items:
# process each item
time.sleep(0.1) # simulate some work
bar() # call after consuming one item
- 利用
progressbar2
库
# 需要先安装progressbar2库
# pip install progressbar2
import progressbar
import time
widgets=[
' [', progressbar.Timer(), '] ',
progressbar.Bar(),
' (', progressbar.ETA(), ') ',
]
bar = progressbar.ProgressBar(maxval=20, widgets=widgets).start()
for i in range(20):
# do some work
time.sleep(0.5)
bar.update(i+1)
bar.finish()
- 使用
rich
库
# 需要先安装rich库
# pip install rich
from rich.progress import Progress
import time
with Progress() as progress:
task1 = progress.add_task("[red]Downloading...", total=1000)
while not progress.finished:
progress.update(task1, advance=5)
time.sleep(0.02)
每种方法都有它们的配置流程和详细代码,通常在使用第三方库的时候,你需要先通过pip
安装它们。上述示例给出了基本的使用方法和代码结构,你可以根据自己的需求进行详细的配置过程和代码调整。
(torch.randn()) pytorch常用函数之torch.randn()解读 torch.randn() 函数简介 全网首发(图文详解1)
(inplace) 对PyTorch中inplace字段的全面理解 inplace 操作在 PyTorch 中的重要作用 全网首发(图文详解1)