如何在 Python 的 tqdm 中避免 print 導致的重復進度條問題?

如何在 Python 的 tqdm 中避免 print 導致的重復進度條問題?

巧妙解決 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
喜歡就支持一下吧
點贊11 分享