首页 > 编程语言 >Python实现动态进度条

Python实现动态进度条

时间:2024-04-03 14:58:09浏览次数:25  
标签:进度条 Python self title percent process print 动态

★ 进度条基本实现

  • 功能代码

    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
    
  • 运行效果

标签:进度条,Python,self,title,percent,process,print,动态
From: https://www.cnblogs.com/cs-songbai/p/18112674

相关文章

  • .NET 代理模式(二) 动态代理-DynamicProxy
    前言我们都知道,在.NET中实现动态代理AOP有多种方案,也有很多框架支持,但大多框架的实现原理都是通过Emit配合Activator一起使用,从IL级别上实现动态代理。其实在.NET中有一个更为简单的方案可以实现动态代理,那就是DispatchProxy类。DispatchProxy类DispatchProxy类是.NETCor......
  • mysql基于二次注入(基于时间)盲注,python脚本
    根据mysql二次注入原理,存储型注入利用,先注册,再登陆、再调用修改密码,完成自动时间盲注类型判断,实现脱裤借用:“孤桜懶契”大佬的脚本#--coding:UTF-8--#Author:孤桜懶契#Date:2021/8/10#blog:gylq.gitee.ioimportrequestsimporttimeflag=""#***************......
  • jwt实现登录 和 接口实现动态权限
     [Authorize]  ====  usingMicrosoft.AspNetCore.Authorization;   登录的DTOnamespacelogin;publicclassWeatherForecast{publicDateOnlyDate{get;set;}publicintTemperatureC{get;set;}publicintTemperatureF=>32+(in......
  • Python框架下的qt设计之JSON格式化转换小程序
    JSON转换小程序代码展示:主程序代码:fromPyQt6.QtWidgetsimport(QApplication,QDialog,QMessageBox)importsysimportjsonclassMyJsonFormatter(jsonui.Ui_jsonFormatter,QDialog):#jsonui是我qt界面py文件名def__init__(self):supe......
  • Python-脆弱性信息收集
    公司做系统集成,有搜集产品脆弱性需求,包括cisco,vmware,redhat,F5等厂家。如:SecurityAdvisories具体需求:1.每天定时搜集十来个网络设备厂家网站新发布的脆弱性2.根据产品和等级不同,邮件发给不同公司人员,内容包括:新脆弱性链接,脆弱性标题,CVE编号,发布时间等2.不能发送重复脆弱性......
  • python格式全部缩进?
    Python格式全部缩进是编写Python代码时需要注意的一个重要问题。从代码格式化的角度,缩进可以让代码更加易读和易于理解。从代码逻辑结构上讲,缩进可以帮助Python解释器识别代码块。违反了Python格式和规范的代码既不美观,也不易于维护。python格式全部缩进?Python程序块是通过缩进......
  • xgboost,一个超强的 Python 库!
    更多资料获取......
  • 帮忙看下这个题的Python代码咋写
    双11商品调配问题某电商企业有4个中心库、20个一级分拨中心。采购的商品分布到4个中心库,然后由中心库向一级分拨中心发货。为备战双11销售高峰。各中心库集中采购备货,备货量和各分拨中心订货量和各分拨中心到中心库的距离如下表:受天气影响,中心仓库4到分拨中心8-11无法调拨。......
  • 【华为OD】2024年华为OD机试C卷真题集:最新的真题集题库 C/C++/Java/python/JavaScript
    【华为OD】2024年C卷真题集:最新的真题集题库C/C++/Java/python/JavaScript【华为OD】2024年C卷真题集:最新的真题集题库C/C++/Java/python/JavaScript-CSDN博客 2024年华为OD机试C卷真题题集题库,有2种分数的题目列表分别是100分的列表、200分的列表需要订阅请看链接:C卷......
  • Python新手太需要了,这5个做题练习网站爱了!
    前言学习编程语言,练习必不可少,在练习和做题的过程中能够查漏补缺,清楚自己在理论学习过程中的不足和薄弱点,加深对于Python的理解和认识。今天就着重的给大家推荐一些适合「新手」练习的Python做题网站。请注意,这里强调的是「新手」,所以,上来就推leetcode、牛客、codewar的......