最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python進度條神器tqdm的使用指南

 更新時間:2026年03月26日 09:22:46   作者:白酒永遠的神  
在日常使用 Python 進行數(shù)據(jù)處理、模型訓練或批量任務時,我們常常會遇到長時間運行的循環(huán),tqdm是一個快速、可擴展且美觀的進度條庫,能夠輕松地為你的 Python 循環(huán)添加進度提示,本文給大家介紹了Python進度條神器tqdm的使用指南,需要的朋友可以參考下

在日常使用 Python 進行數(shù)據(jù)處理、模型訓練或批量任務時,我們常常會遇到長時間運行的循環(huán)。如果沒有一個直觀的反饋機制,用戶很容易誤以為程序卡死或者失去耐心。這時候,tqdm 就派上用場了!

tqdm(讀作 “taqadum”,阿拉伯語意為“進展”)是一個快速、可擴展且美觀的進度條庫,能夠輕松地為你的 Python 循環(huán)添加進度提示。它輕量、高效,并且兼容性極強。

一、安裝 tqdm

tqdm 是一個第三方庫,可以通過 pip 輕松安裝:

pip install tqdm

如果你使用的是 Jupyter Notebook,建議同時安裝 ipywidgets 以獲得更好的交互體驗:

pip install ipywidgets
jupyter nbextension enable --py widgetsnbextension

二、基本用法:一行代碼添加進度條

最簡單的用法就是將 tqdm 包裹在任何可迭代對象外面:

from tqdm import tqdm
import time

for i in tqdm(range(100)):
    time.sleep(0.01)  # 模擬耗時操作

運行后你會看到類似這樣的輸出:

100%|██████████| 100/100 [00:01<00:00, 95.23it/s]

其中包含:

  • 進度百分比
  • 可視化進度條
  • 已完成 / 總數(shù)
  • 已用時間 < 預計剩余時間
  • 每秒迭代次數(shù)(iterations per second)

三、常用參數(shù)詳解

tqdm() 支持多個參數(shù)來自定義進度條行為:

參數(shù)說明
desc進度條前綴描述
total總迭代次數(shù)(當?shù)鏖L度未知時需手動指定)
unit迭代單位(如 ‘file’, ‘image’)
unit_scale自動縮放單位(如 KB/MB)
leave循環(huán)結束后是否保留進度條(默認 True)
ncols進度條寬度(字符數(shù))
colour進度條顏色(如 ‘green’, ‘#ff0000’)

示例:帶描述和自定義單位

from tqdm import tqdm
import time

for i in tqdm(range(50), desc="Processing", unit="item", colour="green"):
    time.sleep(0.05)

輸出效果:

Processing: 100%|██████████| 50/50 [00:02<00:00, 20.12item/s]

四、處理嵌套循環(huán)

tqdm 支持多層嵌套進度條,只需分別包裹每一層:

from tqdm import tqdm
import time

for i in tqdm(range(3), desc="Outer"):
    for j in tqdm(range(100), desc="Inner", leave=False):
        time.sleep(0.01)
Outer:   0%|          | 0/3 [00:00<?, ?it/s]
Inner:   0%|          | 0/100 [00:00<?, ?it/s]
Inner:  10%|█         | 10/100 [00:00<00:00, 94.52it/s]
Inner:  20%|██        | 20/100 [00:00<00:00, 94.96it/s]
Inner:  30%|███       | 30/100 [00:00<00:00, 94.97it/s]
Inner:  40%|████      | 40/100 [00:00<00:00, 94.88it/s]
Inner:  50%|█████     | 50/100 [00:00<00:00, 94.48it/s]
Inner:  60%|██████    | 60/100 [00:00<00:00, 94.40it/s]
Inner:  70%|███████   | 70/100 [00:00<00:00, 93.65it/s]
Inner:  80%|████████  | 80/100 [00:00<00:00, 94.03it/s]
Inner:  90%|█████████ | 90/100 [00:00<00:00, 93.76it/s]
Inner: 100%|██████████| 100/100 [00:01<00:00, 93.81it/s]
Outer:  33%|███▎      | 1/3 [00:01<00:02,  1.06s/it]
Inner:   0%|          | 0/100 [00:00<?, ?it/s]
Inner:  10%|█         | 10/100 [00:00<00:00, 92.40it/s]
Inner:  20%|██        | 20/100 [00:00<00:00, 92.28it/s]
Inner:  30%|███       | 30/100 [00:00<00:00, 92.16it/s]
Inner:  40%|████      | 40/100 [00:00<00:00, 92.55it/s]
Inner:  50%|█████     | 50/100 [00:00<00:00, 92.10it/s]
Inner:  60%|██████    | 60/100 [00:00<00:00, 92.32it/s]
Inner:  70%|███████   | 70/100 [00:00<00:00, 93.00it/s]
Inner:  80%|████████  | 80/100 [00:00<00:00, 93.31it/s]
Inner:  90%|█████████ | 90/100 [00:00<00:00, 93.02it/s]
Inner: 100%|██████████| 100/100 [00:01<00:00, 93.08it/s]
Outer:  67%|██████▋   | 2/3 [00:02<00:01,  1.07s/it]
Inner:   0%|          | 0/100 [00:00<?, ?it/s]
Inner:  10%|█         | 10/100 [00:00<00:00, 91.33it/s]
Inner:  20%|██        | 20/100 [00:00<00:00, 91.54it/s]
Inner:  30%|███       | 30/100 [00:00<00:00, 92.87it/s]
Inner:  40%|████      | 40/100 [00:00<00:00, 92.91it/s]
Inner:  50%|█████     | 50/100 [00:00<00:00, 93.23it/s]
Inner:  60%|██████    | 60/100 [00:00<00:00, 92.99it/s]
Inner:  70%|███████   | 70/100 [00:00<00:00, 92.75it/s]
Inner:  80%|████████  | 80/100 [00:00<00:00, 93.23it/s]
Inner:  90%|█████████ | 90/100 [00:00<00:00, 92.88it/s]
Inner: 100%|██████████| 100/100 [00:01<00:00, 93.16it/s]
Outer: 100%|██████████| 3/3 [00:03<00:00,  1.07s/it]

注意:內(nèi)層循環(huán)通常設置 leave=False,避免屏幕被大量歷史進度條刷屏。

五、手動控制進度

有時你無法使用 for 循環(huán)(比如在 while 中),這時可以使用 tqdm 的手動更新方式:

from tqdm import tqdm
import time

pbar = tqdm(total=100, desc="Manual")
current = 0
while current < 100:
    time.sleep(0.02)
    increment = min(10, 100 - current)
    pbar.update(increment)
    current += increment
pbar.close()
Manual: 100%|██████████| 100/100 [00:00<00:00, 488.25it/s]

關鍵方法:

  • pbar.update(n):前進 n 步
  • pbar.close():關閉進度條(釋放資源)

六、與 pandas 集成

tqdm 還能與 pandas 無縫集成,用于顯示 apply()、groupby() 等操作的進度:

import pandas as pd
from tqdm import tqdm

# 啟用 pandas 支持
tqdm.pandas(desc="Pandas Apply")

df = pd.DataFrame({'x': range(1000)})
df['x_squared'] = df['x'].progress_apply(lambda x: x ** 2)
Pandas Apply: 100%|██████████| 1000/1000 [00:00<00:00, 602803.10it/s]

七、Jupyter Notebook 中的特殊支持

在 Jupyter 中,推薦使用 tqdm.notebook.tqdm,它會渲染出更美觀的 HTML 進度條:

from tqdm.notebook import tqdm
import time

for i in tqdm(range(100)):
    time.sleep(0.01)

效果是帶有顏色和動態(tài)更新的圖形化進度條,體驗更佳。

八、性能影響

tqdm 的設計非常高效,默認每秒最多刷新 10 次(可通過 minitersmininterval 調(diào)整),對程序性能影響微乎其微。即使在高頻循環(huán)中,也可以放心使用。

九、小貼士

  • 如果你在服務器或無終端環(huán)境中運行(如某些 CI/CD 環(huán)境),tqdm 會自動檢測并禁用進度條,避免輸出混亂。
  • 可通過 disable=True 強制關閉進度條(便于調(diào)試或日志記錄)。
  • 使用 logging 時,建議將 tqdm 輸出重定向到 sys.stderr(默認行為),避免干擾日志流。

結語

tqdm 是 Python 開發(fā)者提升用戶體驗和調(diào)試效率的利器。無論是訓練深度學習模型、處理大規(guī)模數(shù)據(jù),還是簡單的腳本任務,只需一行代碼,就能讓你的程序“看得見進度”。

記?。汉玫墓ぞ卟辉谟趶碗s,而在于恰到好處的優(yōu)雅。

趕快在你的下一個項目中試試 tqdm 吧!

以上就是Python進度條神器tqdm的使用指南的詳細內(nèi)容,更多關于Python進度條神器tqdm的資料請關注腳本之家其它相關文章!

相關文章

  • python 拼接文件路徑的方法

    python 拼接文件路徑的方法

    今天小編就為大家分享一篇python 拼接文件路徑的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 使用pandas的box_plot去除異常值

    使用pandas的box_plot去除異常值

    今天小編就為大家分享一篇使用pandas的box_plot去除異常值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python Django框架實現(xiàn)web端分頁呈現(xiàn)數(shù)據(jù)

    python Django框架實現(xiàn)web端分頁呈現(xiàn)數(shù)據(jù)

    這篇文章主要介紹了python Django框架實現(xiàn)web端分頁呈現(xiàn)數(shù)據(jù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Pycharm安裝jieba庫全過程

    Pycharm安裝jieba庫全過程

    文章主要介紹了在Pycharm中安裝jieba庫的方法,包括打開Pycharm設置、選擇項目解釋器、添加并搜索安裝jieba庫
    2026-04-04
  • python中將\\uxxxx轉(zhuǎn)換為Unicode字符串的方法

    python中將\\uxxxx轉(zhuǎn)換為Unicode字符串的方法

    這篇文章主要介紹了python中將\\uxxxx轉(zhuǎn)換為Unicode字符串的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Python實現(xiàn)圖片尺寸縮放腳本

    Python實現(xiàn)圖片尺寸縮放腳本

    這篇文章主要為大家分享了Python實現(xiàn)圖片尺寸縮放的小腳本,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python?logging多進程多線程輸出到同一個日志文件的實戰(zhàn)案例

    python?logging多進程多線程輸出到同一個日志文件的實戰(zhàn)案例

    這篇文章主要介紹了python?logging多進程多線程輸出到同一個日志文件的實戰(zhàn)案例,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • Python實現(xiàn)添加和自定義設置Word頁眉頁腳

    Python實現(xiàn)添加和自定義設置Word頁眉頁腳

    頁眉和頁腳是 Word 文檔中常用的元素,用于在每一頁的頂部或底部顯示統(tǒng)一的信息,本文將介紹如何使用 Python 和 Free Spire.Doc 庫在 Word 文檔中添加和設置頁眉頁腳,包括添加文本、圖片、頁碼,以及設置奇偶頁不同的頁眉頁腳等常見操作,有需要的可以了解下
    2026-04-04
  • python 計算概率密度、累計分布、逆函數(shù)的例子

    python 計算概率密度、累計分布、逆函數(shù)的例子

    這篇文章主要介紹了python 計算概率密度、累計分布、逆函數(shù)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Flask如何結合Jinja2模板引擎返回渲染后HTML

    Flask如何結合Jinja2模板引擎返回渲染后HTML

    在 Flask 中結合 Jinja2 模板引擎返回渲染后的 HTML 是核心功能之一,本文主要介紹了詳細實現(xiàn)方法和最佳實踐,有需要的小伙伴可以跟隨小編一起學習一下
    2025-06-06

最新評論

高邮市| 鲁山县| 汉寿县| 沙雅县| 赤城县| 婺源县| 定安县| 盐源县| 广安市| 云浮市| 常宁市| 宜兴市| 城步| 本溪市| 临城县| 桑日县| 镇远县| 华阴市| 诸城市| 泉州市| 辽阳县| 西畴县| 孟州市| 屯门区| 莒南县| 西盟| 商城县| 兰坪| 湘潭县| 观塘区| 谷城县| 石阡县| 霍城县| 和龙市| 旬阳县| 义乌市| 新乡县| 息烽县| 淳化县| 红河县| 太白县|