Python制作进度条,原来有这么多方法

这篇具有很好参考价值的文章主要介绍了Python制作进度条,原来有这么多方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如果你之前没用过进度条,八成是觉得它会增加不必要的复杂性或者很难维护,其实不然。要加一个进度条其实只需要几行代码。

Python制作进度条,原来有这么多方法,Python,python,开发语言

在这几行代码中,我们可以看看如何在命令行脚本以及 PySimpleGUI UI 中添加进度条。

Python制作进度条,原来有这么多方法,Python,python,开发语言

下文将介绍 4 个常用的 Python 进度条库:

Progress

第一个要介绍的 Python 库是 Progress。

你只需要定义迭代的次数、进度条类型并在每次迭代时告知进度条。

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

Progress 实现的进度条效果如下:

Progressbar 的增量进度条

如果你不喜欢该进度条的格式,还可以从以下格式中挑选:

ProgressBar 支持的进度条类型。

相关文档:https://pypi.org/project/progress/1.5/

tqdm

下面我们看一下 tqdm 库。

和之前见过的库差不多,这两行代码也非常相似,在设置方面有一点点不同:

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

tqdm 实现的进度条效果如下:

Python制作进度条,原来有这么多方法,Python,python,开发语言

这个进度条也提供了几种选项。

相关文档:https://tqdm.github.io/

Alive Progress

顾名思义,这个库可以使得进度条变得生动起来,它比原来我们见过的进度条多了一些动画效果。

从代码角度来说比较相似:

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

进度条的外观和预期差不多:

Python制作进度条,原来有这么多方法,Python,python,开发语言

这种进度条有一些与众不同的功能,使用起来会比较有趣,功能详情可见项目:https://github.com/rsalmei/alive-progress

PySimpleGUI

用 PySimpleGUI 得到图形化进度条

我们可以加一行简单的代码,在命令行脚本中得到图形化进度条。

Python制作进度条,原来有这么多方法,Python,python,开发语言

为了实现上述内容,我们需要的代码是:

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

PySimpleGUI 应用程序中的进度条项目作者之前曾经在 GitHub 上讨论过「如何快速启动 Python UI,然后使用 UI 创建比较工具」。

在这个项目里,作者还讨论了一下如何集成进度条。

Python制作进度条,原来有这么多方法,Python,python,开发语言

代码如下:

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

没错,在 Python 脚本中使用进度条只需要几行代码,一点也不复杂。有了进度条,以后也不用再猜测脚本运行的怎么样了。

更多精彩教程欢迎B站搜索“千锋教育” 

千锋教育Python全套视频教程,轻松掌握Excel、Word、PPT、邮件、爬虫、office办公自动化(宋如宁主讲)文章来源地址https://www.toymoban.com/news/detail-716402.html

到了这里,关于Python制作进度条,原来有这么多方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 活用 F12 开发者工具,测试效率原来可以提高这么多

    F12开发者工具是浏览器自带的一个开发调试工具,因为可以用F12快捷键直接启动,所以简称为F12工具。 F12工具因为有如下的特点,所以被开发和测试人员广泛使用: 1.简单轻量免安装,是浏览器内置的开发者工具,可以提供捕获浏览器的数据报文的功能; 2.作为浏览器的一部

    2024年02月04日
    浏览(54)
  • 手把手QQ机器人制作教程,根据官方接口进行开发,基于Python语言制作的详细教程(更新中)

    QQ开放平台官方地址:https://q.qq.com/#/app/bot QQ开放平台包含:QQ机器人、QQ小程序、QQ小游戏,我们这边选择QQ机器人。 机器人类型:设置私域机器人或者公域机器人,当然公域机器人对于服务器的要求过高,我们这边选择 私域机器人 进行开发。 特别注意在选择沙箱频道的时候

    2023年04月08日
    浏览(61)
  • 记录--原来前端部署这么简单

    有个朋友说前端技能大家大部分都会,就是部署项目这一块经验都比较稀缺,一直很想学一下。所以在这里写一篇简单的从零开始部署前端项目的全过程,感兴趣的掘友们或者想自己搭建项目部署的可以看一下这篇。 首先我们需要进行环境搭建主要就是 服务器 和 nginx配置

    2024年02月05日
    浏览(56)
  • KMP算法原理原来这么简单

    我觉得这句话说的很好: kmp算法关键在于:在当前对文本串和模式串检索的过程中,若出现了不匹配,如何充分利用已经匹配的部分,来继续接下来的检索。 暴力解法就是两层for循环,每次都一对一的匹配,如果匹配错误就文本串开始位置加1,继续下一次 前缀表的作用就是

    2023年04月21日
    浏览(47)
  • 物联网网关,原来是这么回事,感谢!

    《高并发系统实战派》-- 你值得拥有 物联网网关是连接物联网设备和互联网的重要桥梁,它负责将物联网设备采集到的数据进行处理、存储和转发,使其能够与云端或其他设备进行通信。物联网网关的作用是实现物联网设备与云端的无缝连接和数据交换。 不要物联网网关行

    2024年02月08日
    浏览(50)
  • 前端实现复制文字和图片,原来这么简单!

    实习工作中,遇到一个需求,需要完成点击复制的功能,当文字过长的时候,让用户手拖再ctrl+c这种方式体验就不是很好了,如果可以点击一下直接复制就是一种不错的优化用户体验的方式。 经过查阅文档,网络上完成这个功能大多使用两大类方法 第一种是以document.execCom

    2024年02月11日
    浏览(49)
  • 原来.NET写的Linux桌面这么好看?

    本文将讲解如何使用 Blazor 运行跨平台应用,应用到的技术有以下几点 Blazor Masa Blazor Photino.Blazor Ubuntu 用于验证跨平台性,并且是否提高开发效率,Blazor和Photino一块使用的技术称为 Blazor Hybrid , Blazor是一种使用.NET和C#构建客户端Web应用程序的新兴技术。它允许开发者在浏览器

    2024年02月05日
    浏览(48)
  • 原来服务器这么有用-Docker安装

    在此之前青阳通过各种方式介绍过自己通过服务器搭建的一些玩法,也写过一些教程,但是那些教程,现在回头来看,都是有些杂乱了,统一性不强。我就准备重新整理一下之前写的文章,并且准备重新开一个专题来写自己折腾的内容,专题的名字就叫-原来服务器这么有用。

    2024年02月04日
    浏览(68)
  • 央视的《AI我中华》宣传视频,原来这么简单?

    前段时间,央视的《爱我中华》AI宣传短片火爆全网,有一个穿越转场效果非常惊艳! 今天就先来详细讲解,如何利用Stable Diffusion制作这样的穿越转场视频。 用到的扩展插件就是大名鼎鼎的Deforum,其实很早以前很火的“瞬息全宇宙”视频也是用它来完成的。 需要AI绘画素材

    2024年04月26日
    浏览(39)
  • 网工视角看基础网络,原来这么与众不同

    大家好,我是老杨。 前两天去华为生态大会刚回来,颇为感慨。 感慨万物互联的世界越来越大,网络渗透度也越来越极致化。 网络很大,非常大,但在网工眼里,网络复杂又美妙,有着外行人难以理解的魅力 想看我去这次大会到底逛了些啥的,可以看我的第二篇专门写的游

    2024年02月04日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包