python代码实现动态进度条

★ 进度条基本实现

  • 功能代码
    import sys
    import time
    
    # 进度条-功能演示
    def progress_bar_demo(title, symbol):
        for per in range(1, 101):
            print("\r", end="")
            print(f"【{title}】: {per}%: {symbol * (per // 2)} ", end="")
            sys.stdout.flush()
            time.sleep(0.1)
        print("Complete !!!")
       
    # 进度条效果演示
    progress_bar_demo("Download progress", "▋")
    

★ 进度条应用版

  • 功能代码
    import sys
    import time
    
    # 进度条应用版
    class ProgressBar:
    
        def __init__(self, title, symbol):
            self.title = title
            self.symbol = symbol
            # 记录生成器状态
            self.is_stop = False
            # 获取一个进度条生成器对象
            self.process = self._process()
            # 启动生成器
            next(self.process)
    
        # 返回进度条状态 True 表示进度条已结束
        def update_process(self, percent):
            if self.is_stop:
                return True
    
            # 数据校验
            if percent < 0:
                percent = 0
            elif percent > 100:
                percent = 100
            percent = int(percent)
    
            # 更新进度条与状态
            try:
                self.process.send(percent)
            except StopIteration:
                self.is_stop = True
    
            return False
    
        def _process(self):
            while True:
                percent = yield
    
                print("\r", end="")
                print(f"【{self.title}】: {percent}%: {self.symbol * (percent // 2)} ", end="")
                sys.stdout.flush()
    
                if percent >= 100:
                    print("Complete !!!")
                    break
                    
    # 模拟文件总数和处理完成的文件数
    total_num = 125
    complete_num = 0
    
    pb = ProgressBar("Download progress", "▋")
    while True:
        # 模拟文件处理耗时
        time.sleep(0.1)
        complete_num += 1
    
        is_over = pb.update_process(complete_num / total_num * 100)
        if is_over:
            break
    
  • 运行效果

    ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fgitee.com%2Fdongdengwen%2Fmr-dong-image-storage%2Fraw%2Fmaster%2Fimg%2F%E8%BF%9B%E5%BA%A6%E6%9D%A1%E6%95%88%E6%9E%9C.gif&pos_id=img-RU5p2UqW-17121266958

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值