Python 实现进度条的六种方式
warning:
这篇文章距离上次修改已过200天,其中的内容可能已经有所变动。
在Python中,实现进度条可以有多种方式,以下是六种常见的实现方法:
- 使用print的'\r'来刷新进度条
import time
def progress_bar(total):
for i in range(0, total+1):
progress = (i/total)*100
print("\rProgress: {}%".format(round(progress, 2)), end="")
time.sleep(0.1) #模拟耗时任务
if i == total:
print()
progress_bar(10)
- 使用logging模块
import logging
import time
logger = logging.getLogger()
def progress_bar(total):
for i in range(0, total+1):
progress = (i/total)*100
logger.info("Progress: {}%".format(round(progress, 2)))
time.sleep(0.1)
logging.basicConfig(format='%(message)s', level=logging.INFO)
progress_bar(10)
- 使用tqdm库
import time
from tqdm import tqdm
def progress_bar(total):
for i in tqdm(range(total+1)):
time.sleep(0.1)
progress_bar(10)
- 使用click库
import time
import click
@click.command()
@click.option('--total', default=10, help='Total progress')
def progress_bar(total):
with click.progressbar(range(total+1), label='Progress') as progress:
for i in progress:
time.sleep(0.1)
progress_bar()
- 使用numpy.show\_config()方法
import numpy
import time
def progress_bar(total):
for i in numpy.arange(0, total+1, 0.1):
progress = i/total*100
numpy.show_config(progress)
time.sleep(0.1)
progress_bar(10)
- 使用matplotlib.pyplot方法
import time
import matplotlib.pyplot as plt
def progress_bar(total):
fig, ax = plt.subplots()
ax.set_title('Progress')
bar = ax.bar('', 0)
for i in range(total+1):
bar[0].set_width(i)
ax.set_xlim(0, total)
plt.draw()
plt.pause(0.05)
time.sleep(0.1)
plt.close()
progress_bar(10)
以上六种方法都可以实现进度条的功能,你可以根据自己的需求选择合适的方法。
评论已关闭