数据库 协程 Pytorch TCP连接 xml url gwt dns swagger Vanilla JS android经典项目开发实战 mysql修改字段值 excel带格式复制粘贴 python输入输出 python在线教程 python的extend python随机整数 python中import python环境变量配置 python怎么下载 java中string java新特性 javapattern java怎么编译 java获得当前日期 java环境下载 神龙激活 圆形截图 vnc客户端 lseek函数 程序员面试宝典 dota改键工具 虚拟打印机安装 扫微信二维码诈骗原理 vue引入第三方js js获取数组长度 b450 lol无法连接服务器 cad2008汉化包 ipad怎么清理内存垃圾
当前位置: 首页 > 学习教程  > 编程语言

4种常用Python进度条库,学会就是时间管理大师!

2020/12/28 19:47:15 文章标签:

选自towardsdatascience 作者:Costas Andreou 机器之心编译 我们都知道,进度条是用来直观展示流程所需时间的优秀工具,以免我们担心流程会突然挂掉,而且我们可以用它来预测代码运行是否正常,借助进度条,每个…

选自towardsdatascience 作者:Costas Andreou

机器之心编译

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

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

图片

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

图片

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

参考链接: https://towardsdatascience.com/learning-to-use-progress-bars-in-python-2dc436de81e5

点这里:2020Python高薪实战学习大合集**

[拿走不谢!Python 3.9 官方中文文档,限时领!] (http://dwz.date/dE6v)

[限时!速领!14张高清Python速查表,效率提升必备!] (http://dwz.date/dE6w)

[GitHub标星3W+,80个Python案例,带你轻松玩转Python学习!] (http://dwz.date/dE64)


本文链接: http://www.dtmao.cc/news_show_550376.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?