百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

程序运行到哪了?应用进度条,从此再也不犯愁

ztj100 2024-10-28 21:10 16 浏览 0 评论

全文共2276字,预计学习时长7分钟


进度条真的棒极了!

进度条直观地展示了一个进程需要多久完成。它使人们不必担心进度停滞,免除了估计代码进程的麻烦。用户可以实时看到程序进程!


如果以前从没用过进度条,甚至没想过用进度条,可能会想当然地认为进度条会将代码复杂化,使其难以维护。


事实并非如此。只需几行代码,就能在命令行脚本及PySimpleGUI用户界面添加进度条了。


1、Alive progress库


第一个要学的是alive progress库,顾名思义,alive progress库能够让进度条动起来。比起之前的进度条,alive progress多了一些动画效果。然而,就代码而言,alive progress还是相当简单的:


  1. from alive_progress import alive_bar
  2. import timemylist = [1,2,3,4,5,6,7,8]with alive_bar(len(mylist)) as bar:
  3. for i in mylist:
  4. bar()
  5. time.sleep(1)

进度条效果如下:



再次提醒,别忘了看看alive progress库有哪些特性哦。


2、Progress库


接下来要学的Python库是Progress。


用户只需设定期望迭代次数及进度条的类型,并设置进度条在每次完成迭代时更新。


  1. import time
  2. from progress.bar import IncrementalBarmylist = [1,2,3,4,5,6,7,8]bar =IncrementalBar('Countdown', max = len(mylist))for item in mylist:
  3. bar.next()
  4. time.sleep(1)bar.finish()


返回得到:



如果不喜欢进度条的形式,还有很多其他的选择:



别忘了查看Progressbar的官方文档。


3、PySimpleGUI:图形进度条


与前文类似,只需几行代码就可以为命令行脚本添加图形进度条。



要达到这样的效果,只需要下面的代码:


  1. import PySimpleGUI as sg
  2. import timemylist = [1,2,3,4,5,6,7,8]for i, item in enumerate(mylist):
  3. sg.one_line_progress_meter('This ismy progress meter!', i+1, len(mylist), '-key-')
  4. time.sleep(1)

4、Tqdm库


最后,我们来学习tqdm库。


Tqdm是一种快捷的可扩展进度条,适用于Python和命令行界面(CLI)


就像上文提到的Python库一样,只须几行代码就能添加tqdm进度条。只是在设置方面有少许不同:


  1. import time
  2. from tqdm import tqdmmylist = [1,2,3,4,5,6,7,8]for i in tqdm(mylist):
  3. time.sleep(1)

从而得到:



与Progressbar一样,tqdm进度条也有几种不同选择。请务必查看相关官方说明。


PySimpleGUI应用中的进度条


继续学习如何在UI界面加入进度条。


UI界面:


代码如下:


  1. import PySimpleGUI as sg
  2. import timemylist = [1,2,3,4,5,6,7,8]progressbar = [
  3. [sg.ProgressBar(len(mylist),orientation='h', size=(51, 10), key='progressbar')]
  4. ]
  5. outputwin = [
  6. [sg.Output(size=(78,20))]
  7. ]layout = [
  8. [sg.Frame('Progress',layout=progressbar)],
  9. [sg.Frame('Output', layout =outputwin)],
  10. [sg.Submit('Start'),sg.Cancel()]
  11. ]window = sg.Window('Custom Progress Meter', layout)
  12. progress_bar = window['progressbar']while True:
  13. event, values =window.read(timeout=10)
  14. if event == 'Cancel' or event is None:
  15. break
  16. elif event == 'Start':
  17. for i,item in enumerate(mylist):
  18. print(item)
  19. time.sleep(1)
  20. progress_bar.UpdateBar(i +1)window.close()



没错,就是这么简单!


只需几行代码,就可以将进度条应用于Python脚本!这一点也不难,以后再也不用瞎猜程序运行到了哪一步!直接看自己设置的进度条,就能一目了然啦。


最后祝大家学习愉快~

留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范

相关推荐

从IDEA开始,迈进GO语言之门(idea got)

前言笔者在学习GO语言编程的时候,GO语言在国内还没有像JAVA/Php/Python那样普及,绕了不少的弯路,要开始入门学习一门编程语言,最好就先从选择一个好的编程语言的开发环境开始,有了这个开发环...

基于SpringBoot+MyBatis的私人影院java网上购票jsp源代码Mysql

本项目为前几天收费帮学妹做的一个项目,JavaEEJSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。一、项目介绍基于SpringBoot...

基于springboot的个人服装管理系统java网上商城jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目,JavaEEJSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。一、项目介绍基于springboot...

基于springboot的美食网站Java食品销售jsp源代码Mysql

本项目为前几天收费帮学妹做的一个项目,JavaEEJSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。一、项目介绍基于springboot...

贸易管理进销存springboot云管货管账分析java jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目,JavaEEJSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。一、项目描述贸易管理进销存spring...

SpringBoot+VUE员工信息管理系统Java人员管理jsp源代码Mysql

本项目为前几天收费帮学妹做的一个项目,JavaEEJSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。一、项目介绍SpringBoot+V...

目前见过最牛的一个SpringBoot商城项目(附源码)还有人没用过吗

帮粉丝找了一个基于SpringBoot的天猫商城项目,快速部署运行,所用技术:MySQL,Druid,Log4j2,Maven,Echarts,Bootstrap...免费给大家分享出来前台演示...

SpringBoot+Mysql实现的手机商城附带源码演示导入视频

今天为大家带来的是基于SpringBoot+JPA+Thymeleaf框架的手机商城管理系统,商城系统分为前台和后台、前台用的是Bootstrap框架后台用的是SpringBoot+JPA都是现在主...

全网首发!马士兵内部共享—1658页《Java面试突击核心讲》

又是一年一度的“金九银十”秋招大热门,为助力广大程序员朋友“面试造火箭”,小编今天给大家分享的便是这份马士兵内部的面试神技——1658页《Java面试突击核心讲》!...

SpringBoot数据库操作的应用(springboot与数据库交互)

1.JDBC+HikariDataSource...

SpringBoot 整合 Flink 实时同步 MySQL

1、需求在Flink发布SpringBoot打包的jar包能够实时同步MySQL表,做到原表进行新增、修改、删除的时候目标表都能对应同步。...

SpringBoot + Mybatis + Shiro + mysql + redis智能平台源码分享

后端技术栈基于SpringBoot+Mybatis+Shiro+mysql+redis构建的智慧云智能教育平台基于数据驱动视图的理念封装element-ui,即使没有vue的使...

Springboot+Mysql舞蹈课程在线预约系统源码附带视频运行教程

今天发布的是由【猿来入此】的优秀学员独立做的一个基于springboot脚手架的Springboot+Mysql舞蹈课程在线预约系统,系统项目源代码在【猿来入此】获取!https://www.yuan...

SpringBoot+Mysql在线众筹系统源码+讲解视频+开发文档(参考论文

今天发布的是由【猿来入此】的优秀学员独立做的一个基于springboot脚手架的在线众筹管理系统,主要实现了普通用户在线参与众筹基本操作流程的全部功能,系统分普通用户、超级管理员等角色,除基础脚手架外...

Docker一键部署 SpringBoot 应用的方法,贼快贼好用

这两天发现个Gradle插件,支持一键打包、推送Docker镜像。今天我们来讲讲这个插件,希望对大家有所帮助!GradleDockerPlugin简介...

取消回复欢迎 发表评论: