自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

盤一盤 Python 進(jìn)度庫:tqdm的自定義能力

開發(fā)
今天我們會羅列幾個關(guān)于 tqdm 常見自定義場景。并嘗試對動態(tài)更新描述信息做簡單的封裝,積累一些通用模塊。

近工作需要寫一些耗時的 python 小腳本,普通黑窗(控制臺)執(zhí)行即可。但沒有進(jìn)度可不行呀。于是用一些常見的進(jìn)度提示庫- tqdm 。

今天我們會羅列幾個關(guān)于 tqdm 常見自定義場景。并嘗試對動態(tài)更新描述信息做簡單的封裝,積累一些通用模塊。

pip 安裝:

pip install tqdm

簡單用法很簡單:

控制臺顯示:

有人可能會覺得默認(rèn)的外觀太普通了。 tqdm 提供了豐富的自定義選項,可以讓你根據(jù)不同的需求調(diào)整進(jìn)度條的外觀和行為,接下來看看他的自定義能力。

tqdm 函數(shù)參數(shù):

  • desc :進(jìn)度條的描述信息。
  • total :總迭代次數(shù)(默認(rèn)為  None ,會自動檢測)。
  • leave :是否在完成時保留進(jìn)度條(默認(rèn)為  True )。
  • ncols :進(jìn)度條的最大寬度(列數(shù))。
  • ascii :是否使用 ASCII 字符顯示進(jìn)度條(默認(rèn)為  False )。
  • bar_format :自定義進(jìn)度條的格式字符串。
  • colour :設(shè)置進(jìn)度條的顏色。

1. 基本自定義

  • desc="Processing" :設(shè)置進(jìn)度條的描述信息。
  • ascii=False :不使用 ASCII 字符顯示進(jìn)度條。這個參數(shù)默認(rèn)就是 False ,如果設(shè)置為 True,進(jìn)度條就變成 #
  • ncols=75 :設(shè)置進(jìn)度條的最大寬度為 75 列。

第一個是 ascii = False。第二個是 ascii = True

2. 自定義進(jìn)度條格式

你可以通過 bar_format 參數(shù)來自定義進(jìn)度條的格式。并且有一些信息只有 tqdm 才"知道"的信息,因此,它內(nèi)置了一些占位符:

  • {l_bar} :左邊的進(jìn)度條部分。
  • {bar} :進(jìn)度條本身。
  • {r_bar} :右邊的信息部分。
  • {n} :當(dāng)前迭代次數(shù)。
  • {total} :總迭代次數(shù)。
  • {percentage} :百分比。
  • {rate} :每秒迭代次數(shù)。
  • {elapsed} :已用時間。
  • {remaining} :剩余時間。

3. 設(shè)置進(jìn)度條顏色

你可以通過 colour 參數(shù)來設(shè)置進(jìn)度條的顏色。 colour 可以接受多種顏色名稱或 RGB 值。

5. 動態(tài)更新描述信息

這個是最常用的功能,你可以在循環(huán)中動態(tài)更新進(jìn)度條的描述信息。

  • 行5: tqdm(total=100, desc="動態(tài)更新描述信息") :創(chuàng)建一個進(jìn)度條對象,并設(shè)置總迭代次數(shù)為 100。 with  語句確保在退出塊時自動關(guān)閉進(jìn)度條。
  • 行7-17:在特定的迭代次數(shù)( i == 20 ,  i == 40 ,  i == 60 ,  i == 80 )時,調(diào)用  pbar.set_description()  方法來更新進(jìn)度條的描述信息。
  • pbar.update(1) :每次迭代增加進(jìn)度條 1 個單位。這是必須的,否則進(jìn)度條不會更新。

上面的寫法侵入性太強(qiáng)了,一大堆關(guān)于進(jìn)度的代碼混到主循環(huán)里面。我們嘗試做一些簡單封裝。

先看看封裝后的使用代碼有哪些改進(jìn):

  • 行4:使用  with  語法創(chuàng)建和使用  CustomTqdm  對象。當(dāng)退出  with  語句塊時, __exit__  方法會自動調(diào)用  pbar.close()  關(guān)閉進(jìn)度條。
  • 行6-9: 在循環(huán)之前,配置不同的更新點(diǎn)。避免循環(huán)中出現(xiàn)過多的進(jìn)度相關(guān)代碼
  • 行13:在循環(huán)中,每次迭代調(diào)用  pbar.update(1)  更新進(jìn)度條。

看看實現(xiàn)代碼:

責(zé)任編輯:趙寧寧 來源: 數(shù)據(jù)大宇宙
相關(guān)推薦

2025-01-08 17:20:00

pytho數(shù)據(jù)分組itertools

2022-03-25 13:45:37

黑客網(wǎng)絡(luò)攻擊數(shù)據(jù)泄露

2012-07-11 13:32:11

虛擬化

2024-01-08 08:30:30

接口線程模型

2020-06-05 15:48:26

網(wǎng)絡(luò)安全技術(shù)漏洞

2024-07-10 10:04:48

2015-03-02 11:23:51

2012-08-21 15:24:07

騰訊App

2012-07-25 11:29:41

2021-10-29 09:55:20

人工神經(jīng)網(wǎng)絡(luò)

2010-04-29 11:23:08

Apple

2015-09-23 11:43:00

小米副卡虛擬運(yùn)營商

2021-01-07 09:35:49

Pythontqdm進(jìn)度

2020-12-14 13:32:40

Python進(jìn)度條參數(shù)

2021-09-06 14:58:23

鴻蒙HarmonyOS應(yīng)用

2017-05-18 12:40:44

AlphaGoAI柯潔

2017-08-02 17:15:05

互聯(lián)網(wǎng)

2017-03-14 15:09:18

AndroidView圓形進(jìn)度條

2011-05-04 10:40:02

網(wǎng)頁加載進(jìn)度標(biāo)題欄lephone
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號