<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          臥槽!Python竟然能做這樣的進(jìn)度條。。。。。

          共 2507字,需瀏覽 6分鐘

           ·

          2021-01-19 12:32




          機(jī)器之心編譯

          選自towardsdatascience?作者:Costas Andreou


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

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


          Progress


          第一個(gè)要介紹的 Python 庫(kù)是 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 庫(kù)。


          和之前見(jiàn)過(guò)的庫(kù)差不多,這兩行代碼也非常相似,在設(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è)庫(kù)可以使得進(jìn)度條變得生動(dòng)起來(lái),它比原來(lái)我們見(jiàn)過(guò)的進(jìn)度條多了一些動(dòng)畫(huà)效果。



          從代碼角度來(lái)說(shuō)比較相似:
          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)度條有一些與眾不同的功能,使用起來(lái)會(huì)比較有趣,功能詳情可見(jiàn)項(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 上討論過(guò)「如何快速啟動(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()

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

          參考鏈接:https://towardsdatascience.com/learning-to-use-progress-bars-in-python-2dc436de81e5 免責(zé)聲明:本文內(nèi)容來(lái)源于網(wǎng)絡(luò),文章版權(quán)歸原作者所有,意在傳播相關(guān)技術(shù)知識(shí)&行業(yè)趨勢(shì),供大家學(xué)習(xí)交流,若涉及作品版權(quán)問(wèn)題,請(qǐng)聯(lián)系刪除或授權(quán)事宜。

          戀習(xí)Python

          關(guān)注戀習(xí)Python,Python都好練
          好文章,我在看??
          瀏覽 57
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色成人网站在线免费观看 | 国 产 成 人 在 线 视频观看 | 91爱 | 国产成人无码在线高清播放 | 91黑人大屌啪啪 |