Python之程式碼進度條
我們都知道,進度條是用來直觀展示流程所需時間的優秀工具,以免我們擔心流程會突然掛掉,而且我們可以用它來預測程式碼執行是否正常,藉助進度條,每個人都能直觀地看到 指令碼最新的進展情況。 |
如果你之前沒用過進度條,八成是覺得它會增加不必要的複雜性或者很難維護,其實不然。要加一個進度條其實只需要幾行程式碼。在這幾行程式碼中,我們可以看看如何在 命令行 指令碼以及 PySimpleGUI UI 中新增進度條。
下文將介紹 4 個常用的 Python 進度條庫:
第一個要介紹的 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 庫。
和之前見過的庫差不多,這兩行程式碼也非常相似,在設定方面有一點點不同:
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/
顧名思義,這個庫可以使得進度條變得生動起來,它比原來我們見過的進度條多了一些動畫效果。
從程式碼角度來說比較相似:
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
我們可以加一行簡單的程式碼,在 命令行指令碼中得到圖形化進度條。
為了實現上述內容,我們需要的程式碼是:
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)
專案作者之前曾經在 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://www.linuxprobe.com/python-code-progress-bar.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2673069/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- bat檔案進度條程式碼BAT
- Python進度條技巧Python
- CSS3進度條效果程式碼CSSS3
- 【新特性速遞】進度條,進度條,進度條
- Python 輸出命令列進度條Python命令列
- 58python 進度條設計Python
- canvas百分比環形進度條程式碼Canvas
- Python開發技巧-教你製作Python進度條Python
- Python展示檔案下載進度條Python
- Python:用tqdm模組繪製進度條Python
- Qt 進度條QT
- Python進階學習之程式碼閱讀Python
- HTML <progress> 進度條HTML
- wkwebView 新增 進度條WebView
- 學習進度條
- 簡單進度條
- canvas 畫進度條Canvas
- Linux 進度條(非100%)列出unzip進度Linux
- Android花樣loading進度條(三)-配文字環形進度條Android
- 直播平臺搭建原始碼,uniapp progress進度條原始碼APP
- app直播原始碼,edusoho直播回放增加進度條APP原始碼
- 直播平臺搭建原始碼,canvas 畫一條波浪線 進度條原始碼Canvas
- ProgressBar進度條顏色
- icp配準進度條
- 成品直播原始碼推薦,Flutter波浪進度條WaveProgressBar原始碼Flutter
- 直播商城系統原始碼,環形進度條元件原始碼元件
- Python中關於進度條的6個實用技巧Python
- Android原生繪圖進度條+簡單自定義屬性程式碼生成器Android繪圖
- Excel實現完成進度的進度條結果Excel
- canvas環形進度條效果Canvas
- 數字進度條元件NumberProgressBar元件
- 橡皮筋進度條ElasticProgressBarAST
- golang 進度條功能實現Golang
- psplash進度條旋轉成功
- Flutter 波浪圓形進度條Flutter
- LVGL高效顯示進度條
- 讓你的程式炫起來!少有人知道但超酷的 Python 進度條開源庫Python
- 程式碼行數能衡量編碼進度嗎?