当前位置: 首页 > 科技观察

2019年的代码都写完了吗?不如做个Python进度条看看还剩多少

时间:2023-03-13 06:36:42 科技观察

您完成2019年的编码了吗?如何制作一个Python进度条来查看还剩多少?添加进度条只需要几行代码。在这几行代码中,我们可以看到如何向命令行脚本以及PySimpleGUIUI添加进度条。下面将介绍4个常用的Python进度条库:Progress首先要介绍的Python库是Progress。你只需要定义迭代次数,进度条类型并告诉进度条每次迭代。importtimefromprogress.barimportIncrementalBarmylist=[1,2,3,4,5,6,7,8]bar=IncrementalBar('Countdown',max=len(mylist))foriteminmylist:bar.next()time.sleep(1)bar.finish()Progress实现的进度条效果如下:Progressbar的增量进度条如果你不喜欢进度条的格式,也可以选择以下格式:ProgressBar支持的进度条类型。相关文档:https://pypi.org/project/progress/1.5/tqdm下面我们来看一下tqdm库。和我之前看过的库类似,这两行代码也很相似,设置上有点区别:importtimefromtqdmimporttqdmmylist=[1,2,3,4,5,6,7,8]foriintqdm(mylist):时间。sleep(1)tqdm实现的进度条效果如下:这个进度条也提供了几个选项。相关文档:https://tqdm.github.io/AliveProgress顾名思义,这个库可以让进度条活起来。它比我们之前看到的进度条有更多的动画效果。从代码上看,类似:fromalive_progressimportalive_barimporttimemylist=[1,2,3,4,5,6,7,8]withalive_bar(len(mylist))asbar:foriinmylist:bar()time.sleep(1)进度条的出现和预想的差不多:这种进度条有一些比较有特色的功能,用起来会更有趣。功能详情可以在项目中找到:https://github.com/rsalmei/alive-progressPySimpleGUI(1)使用PySimpleGUI获取图形进度我们可以在命令行添加一行简单的代码来获取图形进度条脚本。为了实现以上,我们需要的代码是:importPySimpleGUIassgimporttimemylist=[1,2,3,4,5,6,7,8]fori,iteminenumerate(mylist):sg.one_line_progress_meter('Thisismyprogressmeter!',i+1、len(mylist),'-key-')time.sleep(1)(2)PySimpleGUIapplication中的Progressbar项目作者之前讨论过《如何快速启动一个PythonUI,然后使用该UI创建GitHub上的一个比较工具”。在这个项目中,作者还讨论了如何集成进度条。代码如下:importPySimpleGUIassgimporttimemylist=[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('CustomProgressMeter',layout)progress_bar=window['progressbar']whileTrue:event,values=window.read(timeout=10)ifevent=='取消'oreventisNone:breaklifevent=='开始':fori,iteminenumerate(mylist):print(item)time.sleep(1)progress_bar.UpdateBar(i+1)window.close()没错,在Python脚本中使用进度条只是几行代码,一点也不复杂。有了进度条,以后就不用再猜测脚本运行的怎么样了。参考链接:https://towardsdatascience.com/learning-to-use-progress-bars-in-python-2dc436de81e5【本文为“机器之心”专栏原文翻译,微信公众号“机器之心”theMachine(id:almosthuman2014)”]点此阅读作者更多好文