<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)度條 (Tqdm)

          共 2852字,需瀏覽 6分鐘

           ·

          2021-04-07 10:57


          Tqdm 是一個(gè)智能進(jìn)度表。它能夠顯示所有可迭代對(duì)象當(dāng)前執(zhí)行的進(jìn)度。

          你只需要用 tqdm 對(duì)可迭代對(duì)象進(jìn)行封裝后再遍歷即可實(shí)現(xiàn)進(jìn)度條功能,比如說:

          from tqdm import tqdm
          for i in tqdm(range(10000)):
              ...


          顯示效果如下:

          76%|████████████████████████ | 7568/10000 [00:33<00:10, 229.00it/s]

          1.準(zhǔn)備



          開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

          如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

          此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南

          請(qǐng)選擇以下任一種方式輸入命令安裝依賴
          1. Windows 環(huán)境 打開 Cmd (開始-運(yùn)行-CMD)。
          2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
          3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.

          pip install tqdm

          2.基本使用



          tqdm 非常靈活,可以使用多種方式調(diào)用。下面給出了兩種主要的形式。

          2.1 迭代的形式

          使用 tqdm() 封裝可迭代的對(duì)象:

          from tqdm import tqdm
          from time import sleep

          text = ""
          for char in tqdm(["a", "b", "c", "d"]):
              sleep(0.25)
              text
          = text + char


          trange(i) 是特殊的關(guān)鍵字,是封裝了range的tqdm對(duì)象:

          from tqdm import trange

          for i in trange(100):
              sleep(0.01)


          通過 set_description 方法,你能控制進(jìn)度條顯示當(dāng)前步驟的名稱:

          Processing d: 100%|█████████████████████████████████████████████| 4/4 [00:01<00:00, 3.99it/s]

          2.2 手動(dòng)的形式

          除了迭代的形式,你可以手動(dòng)控制進(jìn)度,加一個(gè)tqdm上下文即可:

          with tqdm(total=100) as pbar:
              for i in range(10):
                  sleep(0.1)
                  pbar.update(10)


          上述例子中,pbar 是 tpdm 的“進(jìn)度”,每一次對(duì) pbar 進(jìn)行 update 10 都相當(dāng)于進(jìn)度加10。

          Total 的值即是總進(jìn)度,這里 total 的值是100,那么pbar加到100的時(shí)候進(jìn)度也就結(jié)束了。

          你也可以選擇不使用上下文的形式調(diào)用,但要記得結(jié)束后對(duì)對(duì)象進(jìn)行關(guān)閉操作:

          pbar = tqdm(total=100)
          for i in range(10):
              sleep(0.1)
              pbar.update(10)
          pbar.close()


          3.模塊結(jié)合



          Tqdm 最妙的地方在于能在命令行中結(jié)合使用:

          $ find . -name '*.py' -type f -exec cat \{} \; |
              tqdm --unit loc --unit_scale --total 857366 >> /dev/null
          100%|█████████████████████████████████| 857K/857K [00:04<00:00, 246Kloc/s]


          只需在管道之間插入tqdm(或python -m tqdm),即可將進(jìn)度條顯示到終端上。

          備份大目錄:

          $ tar -xcf - docs/ | tqdm --bytes --total `du -sb docs/ | cut -f1` \
            > backup.tgz
           44%|██████████████▊ | 153M/352M [00:14<00:18, 11.0MB/s]


          這可以進(jìn)一步美化:

          $ BYTES="$(du -sb docs/ | cut -f1)"
          $ tar -cf - docs/ \
            | tqdm --bytes --total "$BYTES" --desc Processing | gzip \
            | tqdm --bytes --total "$BYTES" --desc Compressed --position 1 \
            > ~/backup.tgz
          Processing: 100%|██████████████████████| 352M/352M [00:14<00:00, 30.2MB/s]
          Compressed: 42%|█████████▎ | 148M/352M [00:14<00:19, 10.9MB/s]


          我們的文章到此就結(jié)束啦,如果你喜歡今天的Python 實(shí)戰(zhàn)教程,請(qǐng)持續(xù)關(guān)注Python實(shí)用寶典。

          有任何問題,可以在公眾號(hào)后臺(tái)回復(fù):加群,回答相應(yīng)紅字驗(yàn)證信息,進(jìn)入互助群詢問。

          原創(chuàng)不易,希望你能在下面點(diǎn)個(gè)贊和在看支持我繼續(xù)創(chuàng)作,謝謝!

          點(diǎn)擊下方閱讀原文可獲得更好的閱讀體驗(yàn)

          Python實(shí)用寶典 (pythondict.com)
          不只是一個(gè)寶典
          歡迎關(guān)注公眾號(hào):Python實(shí)用寶典

          瀏覽 62
          點(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>
                  在线观看视频免费无码免费视频 | 色图天堂网 | 大香蕉色性在线视频 | 蜜桃精品在线 | 一级成人片免费看 |