1. 程式人生 > 其它 >【Note】 tqdm 簡介及正確的開啟方式

【Note】 tqdm 簡介及正確的開啟方式

tqdm簡介及正確開啟方式

什麼是tqdm?

tqdm是一個快速的,易擴充套件的進度條提示模組,官方網站

但是為什麼要取名為這樣呢,官方上說:

tqdm derives from the Arabic word taqaddum (تقدّم) which can mean “progress,” and is an abbreviation for “I love you so much” in Spanish (te quiero demasiado).

所以呢,tqdm其實本身就有進度的意思,另外在西班牙語中還有I love you so much的意思,由此看來,作者應該是個語言大家呢

tqdm的安裝

tqdm不是python的標準庫,但安裝很簡單,直接使用pip即可,當然為了減少牆帶來的麻煩,可以指定映象源,關於pip映象源的更換,可以檢視這篇文章

pip install tqdm -i https://pypi.tuna.tsinghua.edu.cn/simple/

或者,如果你使用Anaconda:

conda install -c conda-forge tqdm

三大使用方法

  1. 基於迭代型別

    # 向tqdm中傳入迭代型別即可
    from tqdm import tqdm
    import time
    
    text = ""
    for char in tqdm(["a", "b", "c", "d"]):
        time.sleep(0.25)
        text = text + char
    

    效果如下:

  2. 手動更新進度條

    # 使用with語句來控制tqdm的更新
    with tqdm(total=100) as pbar:
        for i in range(10):
            time.sleep(0.01)
            pbar.update(1)  # 每次更新的多少
           
    # 當然也可以不用with,將tqdm賦值給一個變數
    pbar = tqdm(total=100)
    for i in range(100):
        time.sleep(0.1)
        pbar.update(10)
    pbar.close()  # !! 注意這樣使用之後必須呼叫del 或者close方法刪除該變數
    

    效果如下:

  3. 在命令列中使用

    # 將輸出的結果內容通過管道傳送給 tqdm
    time find . -name '*.py' -type f -exec cat \{} \; | tqdm | wc -l
    

    效果如下:

tqdm.tqdm 的使用方式

官方中對該模組的講解甚多,這裡也著重講解

引數

iterable=None

  • iterable
  • 可選
  • 裝飾進度條,如果為空,需要手動進行更新

desc=None

  • str
  • 可選
  • 進度條的前面的提示

total=None

  • int 或者 float
  • 可選
  • 迭代元素的多少
    • 如果沒有指定,如果可以,使用len(iterable)代替
    • 如果是float(“inf”),只顯示統計的基本資訊
    • 如果引數gui為True,並且該引數需要後續更新,則初始化為一個任意大的正數,如9e9

leave=True

  • bool
  • 可選
  • 如果True,顯示所有的進度條,如果是None,只顯示第一個進度條

file=None

  • io.TextIOWrapper 或者 io.StringIO
  • 可選
  • 指定輸出的路徑

ncols=None

  • int
  • 可選
  • 輸出資訊的寬度
    • 指定了,動態改變進度條的寬度
    • 未指定,使用環境的寬度

mininterval=0.1

  • float
  • 可選
  • 最小進度顯示更新間隔

maxinterval=10.0

  • float
  • 可選
  • 最大進度顯示更新間隔

miniters=None

  • int 或者 float
  • 可選
  • 在迭代中顯示最小進度的間隔
    • 如果為0,並且指定dynamic_miniters,會自動的調整到mininterval
    • 如果>0,跳過指定數目的迭代

ascii=None

  • bool 或者 str
  • 可選
  • 如果沒有指定或者為False,使用平滑塊(預設),否則使用ascii字元,指定字元的時候長度需大於2

disable=False

  • bool
  • 可選
  • 是否禁用整個進度條,如果是None,在non-tty上禁用

unit='it'

  • str
  • 可選
  • 將用於定義每個迭代的單元的字串

unit_scale=False

  • bool 或 int 或 float
  • 可選
  • 如果為1或為真,則迭代次數將自動減少/縮放,並在國際單一性系統標準之後新增一個度量字首(kilo、mega等)[預設值:False]。如果有任何其他非零數,將按比例總計和n。

dynamic_ncols=False

  • bool
  • 可選
  • 設定為True之後,ncols相當於無效

smoothing=0.3

  • float
  • 可選
  • 以指數型增長的速度進行增長
    • 0~1
    • gui模式下無效

bar_format=None

  • str
  • 可選
  • 自定義進度條字元格式,可能會影響效能
    • 具體見官網

initial=0

  • int 或 float
  • 可選
  • 初始計數值

position=None

  • int
  • 可選
  • 指定偏移量,從0開始

postfix=None

  • dic
  • 可選
  • 在進度條後指定額外的資訊
    • 也可呼叫函式set_postfix實現

unit_divisor=1000

  • float
  • 可選
  • 除非unit_scale=True,否則忽略

write_bytes=None

  • bool
  • 可選
    • 如果None並且檔案未指定,位元組將用Python 2編寫
    • 如果為真,也將寫入位元組
    • 其他情況下,將預設為unicode。

lock_args=None

  • tuple
  • 可選
  • 獲取中間輸出

gui=False

  • bool
  • 可選
  • 內部引數,使用tqdm.gui.tqdm替代
    • 設定True,會使用mtplotlib中的動畫輸出

方法

update

  • 引數
    • int 或 float
    • 可選
  • 手動更新進度條資訊

close

  • 清除並關閉進度條

clear

  • 清除當前顯示的進度條

refresh

  • 強制重新整理當前的進度條

  • 引數

    • nolock

      • bool
        • True
          • 不鎖
        • False
          • 呼叫內部的函式acquire
      • 可選
    • lock_args

      • tuple
      • 可選
      • 傳入到內部的函式acquire
        • 指定之後,只有acquire返回True才會顯示進度條

unpause

  • 重新啟動上一次列印時tqdm的計數器

reset

  • 引數
    • total
      • int or float
      • 可選
      • 新的進度條的total
  • 重新指定total為0以重複利用

set_description

  • 引數
    • desc
    • refresh
      • 強制重新整理
  • 設定/修改進度條的提示,字串後自動新增 “:”

set_description_str

  • desc
  • refresh
  • 設定/修改進度條的提示,字串後不新增 “:”

set_postfix

  • 引數
    • ordered_dict
    • refresh
    • **kwargs
  • 設定/修改進度條後的提示資訊

set_postfix_str

  • 引數
    • s
    • refresh
  • 以字串的形式直接顯示資訊

版權宣告:本文為weixin_44676081原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。
本文連結:https://blog.csdn.net/weixin_44676081/article/details/104834371