tqdm簡介及正確打開方式
什么是tqdm?
tqdm是一個快速的,易擴展的進度條提示模塊,官方網站
但是為什么要取名為這樣呢,官方上說:
tqdmderives 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
三大使用方法
-
基於迭代類型
# 向tqdm中傳入迭代類型即可 from tqdm import tqdm import time text = "" for char in tqdm(["a", "b", "c", "d"]): time.sleep(0.25) text = text + char效果如下:

-
手動更新進度條
# 使用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方法刪除該變量效果如下:

-
在命令行中使用
# 將輸出的結果內容通過管道傳送給 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
- True
- 可選
- bool
-
lock_args
- tuple
- 可選
- 傳入到內部的函數acquire
- 指定之后,只有acquire返回True才會顯示進度條
-
unpause
- 重新啟動上一次打印時tqdm的計數器
reset
- 參數
- total
- int or float
- 可選
- 新的進度條的total
- 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
