巧妙解決 python tqdm 進度條與 print 語句沖突
在 Python 中使用 tqdm 庫顯示進度條時,如果循環內同時使用 print 函數輸出信息,可能會出現進度條重復顯示的問題。這是因為 tqdm 通過不斷刷新同一行文本更新進度條,而 print 函數會換行輸出,導致 tqdm 無法正確刷新,從而出現多余的進度條。
以下代碼演示了這個問題:
import time from tqdm import tqdm for i in tqdm(range(100)): time.sleep(0.1) print(i)
為了避免這個問題,并同時保留在進度條下方打印其他信息的便利性,我們可以利用環境變量來控制進度條的顯示:
import os import time from tqdm import tqdm debug_mode = os.getenv('DEBUG') iterable = tqdm(range(100)) if debug_mode != '1' else range(100) for i in iterable: time.sleep(0.1) if debug_mode == '1': print(i)
通過設置環境變量 DEBUG,我們可以靈活地切換進度條的顯示狀態。當 DEBUG 不等于 ‘1’ 時,使用 tqdm 顯示進度條;當 DEBUG 等于 ‘1’ 時,則禁用 tqdm,直接使用 range,并通過 print 輸出信息。 這種方法既避免了進度條重復,又方便調試和查看詳細信息。
立即學習“Python免費學習筆記(深入)”;
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END