自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

2019年的代碼都寫完了嗎?不如做個(gè)Python進(jìn)度條看看還剩多少

開發(fā) 開發(fā)工具
我們都知道,進(jìn)度條是用來直觀展示流程所需時(shí)間的優(yōu)秀工具,以免我們擔(dān)心流程會突然掛掉,而且我們可以用它來預(yù)測代碼運(yùn)行是否正常,借助進(jìn)度條,每個(gè)人都能直觀地看到腳本最新的進(jìn)展情況。

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

[[311800]]

下文將介紹 4 個(gè)常用的 Python 進(jìn)度條庫:

Progress

第一個(gè)要介紹的 Python 庫是 Progress。

你只需要定義迭代的次數(shù)、進(jìn)度條類型并在每次迭代時(shí)告知進(jìn)度條。

  1. import timefrom progress.bar  
  2. import IncrementalBarmylist = [1,2,3,4,5,6,7,8] 
  3. bar = IncrementalBar('Countdown', max = len(mylist)) 
  4. for item in mylist:  
  5.   bar.next()  
  6.   time.sleep(1)  
  7.   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)不同:

  1. import timefrom tqdm  
  2. import tqdmmylist = [1,2,3,4,5,6,7,8] 
  3. for i in tqdm(mylist):  
  4.   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)度條變得生動起來,它比原來我們見過的進(jìn)度條多了一些動畫效果。

從代碼角度來說比較相似:

  1. from alive_progress import alive_barimport  
  2. timemylist = [1,2,3,4,5,6,7,8] 
  3. with alive_bar(len(mylist)) as bar:  
  4.   for i in mylist:  
  5.     bar()  
  6.     time.sleep(1) 

進(jìn)度條的外觀和預(yù)期差不多:

這種進(jìn)度條有一些與眾不同的功能,使用起來會比較有趣,功能詳情可見項(xiàng)目:https://github.com/rsalmei/alive-progress

PySimpleGUI

(1) 用 PySimpleGUI 得到圖形化進(jìn)度條

我們可以加一行簡單的代碼,在命令行腳本中得到圖形化進(jìn)度條。

為了實(shí)現(xiàn)上述內(nèi)容,我們需要的代碼是:

  1. import PySimpleGUI as sgimport  
  2. timemylist = [1,2,3,4,5,6,7,8] 
  3. for i, item in enumerate(mylist):  
  4.   sg.one_line_progress_meter('This is my progress meter!', i+1, len(mylist), '-key-')  
  5.   time.sleep(1) 

(2) PySimpleGUI 應(yīng)用程序中的進(jìn)度條

項(xiàng)目作者之前曾經(jīng)在 GitHub 上討論過「如何快速啟動 Python UI,然后使用 UI 創(chuàng)建比較工具」。在這個(gè)項(xiàng)目里,作者還討論了一下如何集成進(jìn)度條。

代碼如下:

  1. import PySimpleGUI as sgimport  
  2. timemylist = [1,2,3,4,5,6,7,8] 
  3. progressbar = [ [sg.ProgressBar(len(mylist), orientation='h'size=(51, 10), key='progressbar')]] 
  4. outputwin = [ [sg.Output(size=(78,20))]] 
  5. layout = [ [sg.Frame('Progress',layoutprogressbar)], [sg.Frame('Output', layout = outputwin)], [sg.Submit('Start'),sg.Cancel()]] 
  6. window = sg.Window('Custom Progress Meter', layout) 
  7. progress_bar = window['progressbar'] while True:  
  8.   event, values = window.read(timeout=10)  
  9.   if event == 'Cancel' or event is None:  
  10.     break  
  11.   elif event == 'Start':  
  12.     for i,item in enumerate(mylist):  
  13.       print(item)  
  14.       time.sleep(1)  
  15.       progress_bar.UpdateBar(i + 1)window.close() 

沒錯,在 Python 腳本中使用進(jìn)度條只需要幾行代碼,一點(diǎn)也不復(fù)雜。有了進(jìn)度條,以后也不用再猜測腳本運(yùn)行地怎么樣了。

參考鏈接:

https://towardsdatascience.com/learning-to-use-progress-bars-in-python-2dc436de81e5

【本文是51CTO專欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)譯文,微信公眾號“機(jī)器之心( id: almosthuman2014)”】 

戳這里,看該作者更多好文

 

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2019-12-30 18:32:08

PythonGitHub腳本語言

2024-08-06 14:29:37

2015-07-31 11:19:43

數(shù)字進(jìn)度條源碼

2020-07-21 08:10:01

代碼項(xiàng)目打包

2020-12-14 13:32:40

Python進(jìn)度條參數(shù)

2023-12-27 13:45:00

Python進(jìn)度條代碼

2021-12-15 10:01:06

Python進(jìn)度條開發(fā)

2011-07-05 15:16:00

QT 進(jìn)度條

2015-01-12 12:13:03

Android進(jìn)度條ProgressDia

2022-07-23 21:37:48

Python

2013-03-12 10:35:06

CSS 3

2024-12-02 09:37:51

2015-01-12 09:30:54

Android進(jìn)度條ProgressDia

2015-08-03 11:39:20

擬物化進(jìn)度條

2012-01-17 13:58:17

JavaSwing

2009-06-06 18:54:02

JSP編程進(jìn)度條

2023-12-11 17:15:05

應(yīng)用開發(fā)波紋進(jìn)度條ArkUI

2024-07-25 08:55:47

進(jìn)度條水缸進(jìn)度動畫效果

2024-06-13 08:15:00

2021-12-02 09:31:22

Python 代碼進(jìn)度條
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號