Python制作進(jìn)度條的幾種方法
前言
如果你之前沒用過進(jìn)度條,八成是覺得它會(huì)增加不必要的復(fù)雜性或者很難維護(hù),其實(shí)不然。要加一個(gè)進(jìn)度條其實(shí)只需要幾行代碼。
from alive_progress import alive_bar; import time
在這幾行代碼中,我們可以看看如何在命令行腳本以及 PySimpleGUI UI 中添加進(jìn)度條。

下文將介紹 4 個(gè)常用的 Python 進(jìn)度條庫:
Progress
第一個(gè)要介紹的 Python 庫是 Progress。
你只需要定義迭代的次數(shù)、進(jìn)度條類型并在每次迭代時(shí)告知進(jìn)度條。
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 實(shí)現(xiàn)的進(jìn)度條效果如下:
Progressbar 的增量進(jìn)度條
如果你不喜歡該進(jìn)度條的格式,還可以從以下格式中挑選:
ProgressBar 支持的進(jìn)度條類型。
相關(guān)文檔:https://pypi.org/project/progress/1.5/
tqdm
下面我們看一下 tqdm 庫。
和之前見過的庫差不多,這兩行代碼也非常相似,在設(shè)置方面有一點(diǎn)點(diǎn)不同:
import timefrom tqdm import tqdmmylist = [1,2,3,4,5,6,7,8] for i in tqdm(mylist): time.sleep(1)
tqdm 實(shí)現(xiàn)的進(jìn)度條效果如下:

這個(gè)進(jìn)度條也提供了幾種選項(xiàng)。
相關(guān)文檔:https://tqdm.github.io/
Alive Progress
顧名思義,這個(gè)庫可以使得進(jìn)度條變得生動(dòng)起來,它比原來我們見過的進(jìn)度條多了一些動(dòng)畫效果。
從代碼角度來說比較相似:
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)進(jìn)度條的外觀和預(yù)期差不多:
這種進(jìn)度條有一些與眾不同的功能,使用起來會(huì)比較有趣,功能詳情可見項(xiàng)目:https://github.com/rsalmei/alive-progress
PySimpleGUI
用 PySimpleGUI 得到圖形化進(jìn)度條
我們可以加一行簡(jiǎn)單的代碼,在命令行腳本中得到圖形化進(jìn)度條。
為了實(shí)現(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 應(yīng)用程序中的進(jìn)度條項(xiàng)目作者之前曾經(jīng)在 GitHub 上討論過「如何快速啟動(dòng) Python UI,然后使用 UI 創(chuàng)建比較工具」。
在這個(gè)項(xiàng)目里,作者還討論了一下如何集成進(jìn)度條。

代碼如下:
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()沒錯(cuò),在 Python 腳本中使用進(jìn)度條只需要幾行代碼,一點(diǎn)也不復(fù)雜。有了進(jìn)度條,以后也不用再猜測(cè)腳本運(yùn)行的怎么樣了。
到此這篇關(guān)于Python制作進(jìn)度條的幾種方法的文章就介紹到這了,更多相關(guān)Python制作進(jìn)度條內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyQt5 實(shí)現(xiàn)字體大小自適應(yīng)分辨率的方法
今天小編就為大家分享一篇PyQt5 實(shí)現(xiàn)字體大小自適應(yīng)分辨率的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python和RabbitMQ進(jìn)行消息傳遞和處理方式
這篇文章主要介紹了Python和RabbitMQ進(jìn)行消息傳遞和處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
400多行Python代碼實(shí)現(xiàn)了一個(gè)FTP服務(wù)器
400多行Python代碼實(shí)現(xiàn)了一個(gè)FTP服務(wù)器,實(shí)現(xiàn)了比之前的xxftp更多更完善的功能2012-05-05
python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)使用Keras進(jìn)行簡(jiǎn)單分類
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)使用Keras進(jìn)行簡(jiǎn)單分類,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
python中for語句簡(jiǎn)單遍歷數(shù)據(jù)的方法
這篇文章主要介紹了python中for語句簡(jiǎn)單遍歷數(shù)據(jù)的方法,以一個(gè)簡(jiǎn)單實(shí)例形式分析了Python中for語句遍歷數(shù)據(jù)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-05
python游戲的魅力之冒險(xiǎn)島實(shí)戰(zhàn)項(xiàng)目
我看了一眼沉迷《夢(mèng)幻國度》的兒子!氣就不打一處來!讓你見識(shí)一下Python游戲的魅力,python實(shí)戰(zhàn)冒險(xiǎn)島游戲碼起,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值2021-09-09
解決Python 異常TypeError: cannot concatenate ''str'' and ''int''
這篇文章主要介紹了解決Python 異常TypeError: cannot concatenate 'str' and 'int' objects,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04
python 對(duì)txt中每行內(nèi)容進(jìn)行批量替換的方法
今天小編就為大家分享一篇python 對(duì)txt中每行內(nèi)容進(jìn)行批量替換的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07
Pygame庫200行代碼實(shí)現(xiàn)簡(jiǎn)易飛機(jī)大戰(zhàn)
本文主要介紹了Pygame庫200行代碼實(shí)現(xiàn)簡(jiǎn)易飛機(jī)大戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
python 出現(xiàn)SyntaxError: non-keyword arg after keyword arg錯(cuò)誤解決辦
這篇文章主要介紹了python 出現(xiàn)SyntaxError: non-keyword arg after keyword arg錯(cuò)誤解決辦法的相關(guān)資料,需要的朋友可以參考下2017-02-02

