Python制作進度條的幾種方法
前言
如果你之前沒用過進度條,八成是覺得它會增加不必要的復雜性或者很難維護,其實不然。要加一個進度條其實只需要幾行代碼。
from alive_progress import alive_bar; import time
在這幾行代碼中,我們可以看看如何在命令行腳本以及 PySimpleGUI UI 中添加進度條。
下文將介紹 4 個常用的 Python 進度條庫:
Progress
第一個要介紹的 Python 庫是 Progress。
你只需要定義迭代的次數(shù)、進度條類型并在每次迭代時告知進度條。
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 實現(xiàn)的進度條效果如下:
Progressbar 的增量進度條
如果你不喜歡該進度條的格式,還可以從以下格式中挑選:
ProgressBar 支持的進度條類型。
相關(guān)文檔: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 實現(xiàn)的進度條效果如下:
這個進度條也提供了幾種選項。
相關(guān)文檔: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 得到圖形化進度條
我們可以加一行簡單的代碼,在命令行腳本中得到圖形化進度條。
為了實現(xiàn)上述內(nèi)容,我們需要的代碼是:
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 應用程序中的進度條項目作者之前曾經(jīng)在 GitHub 上討論過「如何快速啟動 Python UI,然后使用 UI 創(chuàng)建比較工具」。
在這個項目里,作者還討論了一下如何集成進度條。
代碼如下:
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 腳本中使用進度條只需要幾行代碼,一點也不復雜。有了進度條,以后也不用再猜測腳本運行的怎么樣了。
到此這篇關(guān)于Python制作進度條的幾種方法的文章就介紹到這了,更多相關(guān)Python制作進度條內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python3中的gettext模塊翻譯Python源碼以支持多語言
這篇文章主要介紹了使用Python3中的gettext模塊翻譯Python源碼以支持多語言,其中翻譯Python源碼只是作為示例以展示gettext的功能和用法,需要的朋友可以參考下2015-03-03Python使用修飾器執(zhí)行函數(shù)的參數(shù)檢查功能示例
這篇文章主要介紹了Python使用修飾器執(zhí)行函數(shù)的參數(shù)檢查功能,結(jié)合具體實例形式分析了Python實現(xiàn)修飾器針對函數(shù)參數(shù)檢查的原理、步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-09-09Python代碼實現(xiàn)刪除一個list里面重復元素的方法
今天小編就為大家分享一篇關(guān)于Python代碼實現(xiàn)刪除一個list里面重復元素的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04python,Java,JavaScript實現(xiàn)indexOf
這篇文章主要介紹了python,Java,JavaScript如何實現(xiàn)indexOf,幫助大家更好的理解indexOf,感興趣的朋友可以了解下2020-09-09如何用Python數(shù)據(jù)可視化來分析用戶留存率
今天和大家來分享一些數(shù)據(jù)可視化方向的干貨,我們來嘗試用Python來繪制一下“漏斗圖”,感興趣的小伙伴和小編一起進入課題吧,但愿大家會有所收獲2021-09-09