Python的Tqdm模組 進度條配置

2021-08-28 17:16:06 字數 2849 閱讀 7572

tqdm 是乙個快速,可擴充套件的python進度條,可以在 python 長迴圈中新增乙個進度提示資訊,使用者只需要封裝任意的迭代器 tqdm(iterator)。

總之,它是用來顯示進度條的,很漂亮,使用很直觀(在迴圈體裡邊加個tqdm),而且基本不影響原程式效率。名副其實的「太強太美」了!這樣在寫執行時間很長的程式時,是該多麼舒服啊!

給一張gif圖看一下實際效果

pip install tqdm
示例一簡單的demo:

# !/user/bin/env python

# -*- coding:utf-8 -*-

import time

from tqdm import tqdm

from tqdm._tqdm import trange

for i in tqdm(range(100)):

time.sleep(0.01)

輸出結果如下:

關於tqdm對於range的封裝

import time

from tqdm import tqdm

from tqdm._tqdm import trange

for j in trange(100):

time.sleep(0.1)

輸出結果如下(同上)

示例二:

對於任意list的使用

alist = list('letters')

bar = tqdm(alist)

for letter in bar:

bar.set_description(f"now get ")

輸出結果如下:

傳入任意list

pbar = tqdm(["a", "b", "c", "d"])

for char in pbar:

pbar.set_description("processing %s" % char)

手動控制更新

with tqdm(total=100) as pbar:

for i in range(10):

pbar.update(10)

# 也可以這樣

pbar = tqdm(total=100)

for i in range(10):

pbar.update(10)

pbar.close()

示例三:結合pandas的使用

import  pandas as pd

import numpy as np

df = pd.dataframe(np.random.randint(0, 100, (10000000, 6)))

tqdm.pandas(desc="my bar!")

輸出結果如下:

示例四

在shell的tqdm用法

$ time find . -name '*.py' -exec cat \{} \; | wc -l

857365

real 0m3.458s

user 0m0.274s

sys 0m3.325s

$ time find . -name '*.py' -exec cat \{} \; | tqdm | wc -l

857366it [00:03, 246471.31it/s]

857365

real 0m3.585s

user 0m0.862s

sys 0m3.358s

使用的引數:

$ find . -name '*.py' -exec cat \{} \; |

tqdm --unit loc --unit_scale --total 857366 >> /dev/null

100%|███████████████████████████████████| 857k/857k [00:04<00:00, 246kloc/s]

備份乙個目錄:

$ 7z a -bd -r backup.7z docs/ | grep compressing |

tqdm --total $(find docs/ -type f | wc -l) --unit files >> backup.log

100%|███████████████████████████████▉| 8014/8014 [01:37<00:00, 82.29files/s]

本文參考:

Python的Tqdm模組 進度條配置

from tqdm 是乙個快速,可擴充套件的python進度條,可以在 python 長迴圈中新增乙個進度提示資訊,使用者只需要封裝任意的迭代器 tqdm iterator 總之,它是用來顯示進度條的,很漂亮,使用很直觀 在迴圈體裡邊加個tqdm 而且基本不影響原程式效率。名副其實的 太強太美 了!...

python進度條tqdm使用

from tqdm import tqdm,trange import time def a sumi 0 list1 for i in tqdm range 100 for i in trange 100 sumi sum sumi,i time.sleep 0.1 return sumi 通過t...

Python中進度條的實現(tqdm)

最近弄cv的時候經常會需要檢視資料生成的進度或者是處理的進度,使用tqdm可以很好的通過進度條視覺化整個程序,使用起來也十分方便,其封裝得已經十分完整,在這裡記錄一下經驗,供以後檢視。官方github文件 在這種方式下,只需要將所有可迭代物件用tqdm 封裝起來即可。一般與for迴圈連用。如 fro...