幾行代碼就可以輕松給你的程序加上進(jìn)度條
迷人的進(jìn)度條
進(jìn)度條是一個(gè)過程剩余時(shí)間的可視化表示。它們使您不必?fù)?dān)心進(jìn)程是否掛起,也不必嘗試預(yù)測(cè)代碼的進(jìn)展情況。您可以實(shí)時(shí)直觀地看到腳本進(jìn)行得有多好!
如果您以前從未考慮過或使用過進(jìn)度條,那么很容易認(rèn)為它們會(huì)給您的代碼增加不必要的復(fù)雜性,并且很難維護(hù)。這與事實(shí)相去甚遠(yuǎn)。通過幾行代碼,我們將看到如何向命令行腳本添加進(jìn)度條。
使用Progress庫(kù)
首先要使用的python庫(kù)是Progress。
您所需要做的就是定義您希望進(jìn)行的迭代次數(shù)、bar的類型,并在每次迭代時(shí)讓bar知道。
- import time
- from progress.bar import IncrementalBar
- mylist = [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()
運(yùn)行結(jié)果
使用tqdm庫(kù)
接下來(lái)要介紹的是tqdm庫(kù)。
用于Python和CLI的快速、可擴(kuò)展的進(jìn)度條
就像我們看到的上一個(gè)庫(kù)一樣,我們可以用幾行代碼引入一個(gè)progres條。在設(shè)置上只有細(xì)微的差別:
- import time
- from tqdm import tqdm
- mylist = [1,2,3,4,5,6,7,8]
- for i in tqdm(mylist):
- time.sleep(1)
運(yùn)行結(jié)果:

使用Alive Progress庫(kù)
顧名思義,這個(gè)庫(kù)試圖激活進(jìn)度條。它比我們之前看到的進(jìn)度條有更多的動(dòng)畫。但是在代碼方面,它非常相似:
- from alive_progress import alive_bar
- import time
- mylist = [1,2,3,4,5,6,7,8]
- with alive_bar(len(mylist)) as bar:
- for i in mylist:
- bar()
- time.sleep(1)
使用PySimpleGUI的圖形化進(jìn)度條
我們可以添加一行代碼來(lái)將圖形化的進(jìn)度條添加到命令行腳本中。

要實(shí)現(xiàn)上述目標(biāo),我們所需要的是:
- import PySimpleGUI as sg
- import time
- mylist = [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)