2019年的代码都写完了吗?不如做个python进度条看看还剩多少(代码片段)

7758520lzy 7758520lzy     2022-12-24     507

关键词:

我们都知道,进度条是用来直观展示流程所需时间的优秀工具,以免我们担心流程会突然挂掉,而且我们可以用它来预测代码运行是否正常,借助进度条,每个人都能直观地看到脚本最新的进展情况。

技术图片

技术图片

 

如果你之前没用过进度条,八成是觉得它会增加不必要的复杂性或者很难维护,其实不然。要加一个进度条其实只需要几行代码。在这几行代码中,我们可以看看如何在命令行脚本以及 PySimpleGUI UI 中添加进度条。

 

下文将介绍 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 实现的进度条效果如下:

技术图片

 

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

 

相关文档: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)


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

 

技术图片


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

 

PySimpleGUI

 

用 PySimpleGUI 得到图形化进度条

 

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

 

技术图片

 

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

 

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 创建比较工具」。在这个项目里,作者还讨论了一下如何集成进度条。

 

技术图片

 

代码如下:

 

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 脚本中使用进度条只需要几行代码,一点也不复杂。有了进度条,以后也不用再猜测脚本运行地怎么样了。

vs2019可以写python吗

...有人喜欢用命令行,没什么好说的参考技术AVS的Python支持不如PyCharm,建议用PyCharm,这是目前最好也是最主流的PythonIDE。本回答被提问者采纳 查看详情

见过仙女蹦迪吗?一起用python做个小仙女代码蹦迪视频(代码片段)

...么?突发奇想,能不能把小仙女的蹦迪视频转成代码舞呢?说干就干,今天就手把手教大家如何把跳舞视频转成代码舞,跟着仙女姐姐一起蹦起来~视频来源 查看详情

用python做个小仙女代码蹦迪视频(代码片段)

????????关注后回复 “进群” ,拉你进程序员交流群????????版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/hhladminhhl/article/details/118463344... 查看详情

python基础教程3——教你用python做个简单的加密程序(还基础什么呀,直接来练习吧,带源码)(代码片段)

    因为发现基础教程我之前推荐的那个网站就已经很完善了,就不重复写了,所以本汪来一起做练习吧。 一、加密原理    记得当时我学c++的时候,学到输入输出流的时候,当时王老师就教我们... 查看详情

css2019年的新css功能(代码片段)

查看详情

某程序员哀叹:二本计算机,4年开发,年包才40多万。二本真的不如985/211吗?...(代码片段)

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇程序员求职面试(ID:CoderJob)整理内容参考自:脉脉近日,只职场论坛脉脉上看到一个热帖,发帖人称:为什么大家工资那... 查看详情

想用java做个固定访问某网站的小程序,我想知道如何判断页面已经加载完毕或刷新完了。

比如页面加载完了,或刷新完了,就在访问一次,如此循环。参考技术A搞个html的,用javascript吧,搞个ajax的,用java还要安装JDK,多麻烦啊 参考技术B你这是想做一个刷流量的程序吧! 查看详情

见过仙女蹦迪吗?一起用python做个小仙女代码蹦迪视频(代码片段)

...么?突发奇想,能不能把小仙女的蹦迪视频转成代码舞呢?说干就干,今天就手把手教大家如何把跳舞视频转成代码舞,跟着仙女姐姐一起蹦起来~视频来源:【紫颜】见过仙女蹦迪吗【千盏】直接跳到文... 查看详情

没病千万别做外包,狗都不如!(代码片段)

...AT技术(ID:BAT_ARCH)如果有一个不用管绩效和代码质量,工作时间可以尽情摸鱼,更没有职场PUA的工作,你会考虑吗?B哥觉得,如果是刚 查看详情

桌面太单调?一起用python做个自定义动画挂件,好玩又有趣!(代码片段)

前言前段时间,写了篇博客关于Python自制一款炫酷音乐播放器。有粉丝问我,音乐播放器为什么要用PyQt5,效果是不是比Tkinter赞?PyQt5真的可以实现这些炫酷的UI画面吗?之前没接触过PyQt5,能不能多分享一... 查看详情

前后端分离介绍(代码片段)

我们为什么要尝试前后端分离尝试与改变如果你没有尝试过前后端分离的工作流程,那么可以先试想一下这样的流程改变:把流程从 PM:“我要这个功能”后端:“这个先找前端做个模板”前端:“模板做完了”后端:“我... 查看详情

8年开发,连登陆接口都写这么烂...(代码片段)

...;拉你进程序员交流群👇👇作者:哒哒哒哒打代码 链接:https://juejin.cn/post/6859214952704999438前言大家学写程序时,第一行代码都是helloworld。但是当你开始学习WEB后台技术时,很多人的第一个 查看详情

用python来表白,把情书写进她的照片里(代码片段)

前言这不已经十一月了,22年马上就过完了,各位兄弟有对象了吗,现在就是缺钱还缺对象退一步来说,有心仪的人吗啊,如果有的话,看看这篇程序员的表白小妙招吧实现步骤想要实现把情书写在像素中&... 查看详情

c++性能真的不如c吗?(代码片段)

大家好!最近在知乎上看了篇帖子,题目是为什么C++没有C语言快,如下图:恰好之前研究过这块,所以借助本文,分析下这个问题(无意于语言之争,单纯是从技术角度😁)。众所周... 查看详情

为啥很多安装程序都写“amd”?

】为啥很多安装程序都写“amd”?【英文标题】:Whyis"amd"writteninmanyinstallers?为什么很多安装程序都写“amd”?【发布时间】:2016-06-0710:15:52【问题描述】:我见过很多安装程序,比如Python和Ubuntu,上面有“amd”。为什么... 查看详情

爬取cvpr2019年的论文数据并实现可视化热词云(代码片段)

写在前面本次课堂练习,老师提出要我们做一个热词云。说实话看到的一瞬间有些懵逼,不知道要怎么做。但查阅了资料后一切明朗起来。也提示我们凡事不要怕,先做就是了。本文web端代码已上传github:https://github.com/wushenjiang/Pap... 查看详情

同一周数 Python Pandas 过去 3 年的滚动平均值

】同一周数PythonPandas过去3年的滚动平均值【英文标题】:RollingAverageforlast3yearsforsameweeknumberPythonPandas【发布时间】:2019-09-0422:02:15【问题描述】:只要有可用的数据,例如201932,我就会使用201632、201732和201832的数据的平均值来查... 查看详情

抽根烟的功夫!用python做个颜值测试脚本(代码片段)

先做个介绍1、vimmy_introduce2.py编辑内容:#!/usr/bin/envpython#str,字符串name="frindsofthewind"#int,整数age=29#是,布尔类型gender=True#Float,浮点数height=1.82#int,整数weight=79print(name)print 查看详情