巧妙解決python tqdm進度條與print函數(shù)沖突
在使用Python的tqdm庫顯示進度條時,循環(huán)內(nèi)使用print函數(shù)可能會導(dǎo)致進度條顯示混亂,出現(xiàn)重復(fù)打印的問題。這是因為tqdm通過刷新當(dāng)前行顯示進度,而print函數(shù)每次調(diào)用都會換行,兩者互相干擾。
以下示例演示了這個問題:
import time from tqdm import tqdm for i in tqdm(range(100)): time.sleep(0.1) print(i) # 這里會導(dǎo)致進度條顯示混亂
為了避免此問題,建議不要在tqdm循環(huán)內(nèi)直接使用print。 我們可以利用環(huán)境變量來控制是否輸出調(diào)試信息,從而在需要時打印詳細(xì)信息,而平時只顯示簡潔的進度條。
改進后的代碼如下:
立即學(xué)習(xí)“Python免費學(xué)習(xí)筆記(深入)”;
import os import time from tqdm import tqdm debug_mode = os.environ.get('DEBUG') # 獲取環(huán)境變量DEBUG if debug_mode != '1': iterator = tqdm(range(100)) else: iterator = range(100) for i in iterator: time.sleep(0.1) if debug_mode == '1': print(f"Iteration: {i}") # 僅在調(diào)試模式下打印
通過設(shè)置環(huán)境變量DEBUG=1,即可啟用調(diào)試模式,打印迭代信息;否則,只顯示tqdm進度條,保持輸出整潔。 這種方法靈活地控制輸出,避免了print與tqdm的沖突。
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END