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 time
from progress import progress

temp_list = [x for x in range(1, 20)]

for _ in progress(temp_list):
    """
    可添加自己的代码
    """
    time.sleep(0.5)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangjin7356

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值