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

2019-12-31 03:17:00  阅读:6551+ 作者:责任编辑NO。杜一帆0322 责任编辑:责任编辑NO。杜一帆0322

咱们都知道,进度条是用来直观展现流程所需时刻的优异东西,避免咱们忧虑流程会忽然挂掉,并且咱们咱们能够用它来猜想代码运转是不是正常,凭借进度条,任何一个人都能直观地看到脚本最新的发展状况。

假如你之前没用过进度条,多半是觉得它会增加不必要的杂乱性或许很难保护,其实不然。要加一个进度条其实只需要几行代码。在这几行代码中,咱们咱们能够看看如安在命令行脚本以及 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 库。

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

importtimefromtqdmimporttqdmmylist=[1,2,3,4,5,6,7,8]foriintqdm(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 elifevent=='Start': fori,iteminenumerate(mylist): print(item) time.sleep(1) progress_bar.UpdateBar(i+1)window.close()

没错,在 Python 脚本中运用进度条只需要几行代码,一点也不杂乱。有了进度条,今后也不必再猜想脚本运转地怎么样了。

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!