栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python实现显示进度条

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python实现显示进度条

文章目录
      • 1. 普通进度条
      • 2. 带时间的普通进度条
      • 3. tqdm库
      • 4. alive_progress库
      • 5. progressbar库

1. 普通进度条

利用打印功能print进行实时刷新显示

import sys
import time


def progress_bar(finish_tasks_number, tasks_number):
    """
    进度条

    :param finish_tasks_number: int, 已完成的任务数
    :param tasks_number: int, 总的任务数
    :return:
    """

    percentage = round(finish_tasks_number / tasks_number * 100)
    print("r进度: {}%: ".format(percentage), "▓" * (percentage // 2), end="")
    sys.stdout.flush()


if __name__ == '__main__':
    for i in range(0, 101):
        progress_bar(i, 100)
        time.sleep(0.05)

效果如下:

2. 带时间的普通进度条

同样通过print进行打印进度条,不过还加入了time时间显示,显示进度过程中所需要的时间

import time


def progress_bar(finish_tasks_number, tasks_number, complete_time):
    """
    进度条

    :param finish_tasks_number: int, 已完成的任务数
    :param tasks_number: int, 总的任务数
    :param complete_time: float, 已完成的任务所消耗的总时间
    :return:
    """

    percentage = round(finish_tasks_number / tasks_number * 100)
    finished_label = "▓" * (percentage // 2)
    unfinished_label = "-" * (100 - percentage)
    arrow = "->"
    if not finished_label or not unfinished_label:
        arrow = ""
    print("r{}% [{}{}{}] {:.2f}s".format(percentage, finished_label, arrow, unfinished_label, complete_time), end="")


if __name__ == '__main__':
    start = time.perf_counter()
    for i in range(0, 101):
        duration = time.perf_counter() - start
        progress_bar(i, 100, duration)
        time.sleep(0.05)

效果如下:

3. tqdm库

tqdm是一个快速,可扩展的Python进度条,可以在Python长循环中添加一个进度提示信息

import time

from tqdm import trange

for i in trange(100):
    # do something
    time.sleep(0.5)

效果如下:

4. alive_progress库

alive_progress是一个动态的实时显示进度条库

import time

from alive_progress import alive_bar

# 假设需要执行100个任务
with alive_bar(100) as bar:
    for item in range(100):  # 遍历任务
        # 假设这代码部分需要0.5s
        time.sleep(0.5)
        bar()  # 显示进度

效果如下:

5. progressbar库
import time

from progressbar import ProgressBar, Percentage, Bar, Timer, ETA, FileTransferSpeed

widgets = ['Progress: ', Percentage(), ' ', Bar('#'), ' ', Timer(), ' ', ETA(), ' ', FileTransferSpeed()]
progress = ProgressBar(widgets=widgets)
for i in progress(range(100)):
    # do something
    time.sleep(0.05)

效果如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/324083.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号