> 文档中心 > Python制作简单的进度条

Python制作简单的进度条

有时候通过列表循环处理程序,等待过程需要显示进度,因此做了个简单的进度条,代码如下:

# !/usr/bin/python3.9# -*- coding: utf-8 -*-import sys__all__ = ['progress']class Progress(object):    counter = 0 def __init__(self): pass @classmethod    def progress_bar(cls, factor, counter, total, tip): """ 绘制进度条  Args:     factor: 进度条字符的个数因子     counter: 当前的次数;取列表循环的此时     total:  总长度。取列表的长度     tip: 进度条前面的提示 Return:  """  _output = sys.stdout # 百分比 percentage = counter / total # 进度条风格 fashion_string = f"{tip}:{'█' * factor * cls.counter} {percentage:3.1%}\r"  _output.write(fashion_string) _output.flush() @classmethod    def progress(cls, obj: list, tip='进度'): """ 进度条效果,显示进度以及百分比。目前传入对象仅支持列表对象。该函数是生成器 Args:     obj:列表参数     tip: 进度条前面的提示信息      yield:     返回列表元素  """  # 取列表长度 length = len(obj)  # 利用生成器,返回列表值并显示进度条及百分比 for value in obj:     cls.progress_bar(5, cls.counter, length, tip)   yield value   cls.counter += 1     cls.progress_bar(5, cls.counter, length, tip)progress = Progress.progress

 实际应用:

# !/usr/bin/python3.9# -*- coding: utf-8 -*-import timefrom progress import progresstemp_list = [x for x in range(1, 20)]for _ in progress(temp_list):    """    可添加自己的代码    """    time.sleep(0.5)