欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實(shí)現(xiàn)進(jìn)度條的多種實(shí)現(xiàn)

 更新時(shí)間:2021年04月29日 14:09:39   作者:IT之一小佬  
這篇文章主要介紹了python實(shí)現(xiàn)進(jìn)度條的多種實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

有時(shí)候在使用Python處理比較耗時(shí)操作的時(shí)候,為了便于觀察處理進(jìn)度,這時(shí)候就需要通過進(jìn)度條將處理情況進(jìn)行可視化展示,以便我們能夠及時(shí)了解情況。這對于第三方庫非常豐富的Python來說,想要實(shí)現(xiàn)這一功能并不是什么難事。

tqdm就能非常完美的支持和解決這些問題,可以實(shí)時(shí)輸出處理進(jìn)度而且占用的CPU資源非常少,支持循環(huán)處理、多進(jìn)程、遞歸處理、還可以結(jié)合linux的命令來查看處理情況,等進(jìn)度展示。

tqdm在阿拉伯語中的意思是“進(jìn)展”,是python中一個(gè)快速、擴(kuò)展性強(qiáng)的進(jìn)度條工具庫,能讓我們了解代碼的運(yùn)行進(jìn)度,也能讓我們的運(yùn)行結(jié)果看起來顯得更加美觀而又高大上??!

先來看一下進(jìn)度條的效果。

示例代碼:

from tqdm import tqdm
 
for i in tqdm(range(int(9e7))):
    pass

運(yùn)行結(jié)果:

可以看到,當(dāng)我們的代碼的運(yùn)行需要較長時(shí)間時(shí),進(jìn)度條可以很好的幫助我們了解整個(gè)代碼的運(yùn)行進(jìn)度。

一、tqdm相關(guān)操作

 1、迭代對象處理

對于可以迭代的對象都可以使用下面這種方式,來實(shí)現(xiàn)可視化進(jìn)度,非常方便。

示例代碼:

import time
from tqdm import tqdm
 
for i in tqdm(range(100)):
    time.sleep(0.1)
    pass

運(yùn)行結(jié)果:

2、觀察處理的數(shù)據(jù)

通過tqdm提供的set_description方法可以實(shí)時(shí)查看每次處理的數(shù)據(jù)。

示例代碼:

import time
from tqdm import tqdm
 
pbar = tqdm(["A", "B", "C", "D", "E", "F"])
for i in pbar:
    time.sleep(1)
    pbar.set_description("Processing %s" % i)

運(yùn)行結(jié)果:

3、pandas中使用tqdm

pandas中對大量數(shù)據(jù)進(jìn)行相關(guān)操作或者遍歷表格的行列時(shí),我們可以使用tqdm來了解代碼運(yùn)行情況。

示例代碼:

import time
import pandas as pd
from tqdm import tqdm
 
df = pd.DataFrame({
    'Month': [1, 2, 3, 4, 5, 2, 3, 4, 5, 1, 2, 3, 4],
    'Name': ['張三', '張三', '張三', '張三', '張三', '李四', '李四', '李四', '李四', '王五', '王五', '王五', '王五'],
    'Sex': ['男', '男', '女', '女', '女', '男', '男', '男', '男', '女', '女', '女', '女']
})
for i in tqdm(['Month', 'Name', 'Sex']):
    time.sleep(2)
    pass

運(yùn)行結(jié)果:

4、多進(jìn)程進(jìn)度條

在使用多進(jìn)程或者嵌套循環(huán)處理任務(wù)的時(shí)候,我們通過tqdm可以實(shí)時(shí)查看每一個(gè)進(jìn)程任務(wù)的處理情況

示例代碼:

import time
from tqdm import tqdm
 
for i in tqdm(range(5), ascii=False, desc="1st process"):
    #  ascii = True 時(shí)為##
    for j in tqdm(range(5), ascii=True, desc="2st process"):
        time.sleep(0.1)

運(yùn)行結(jié)果:

5、自定義進(jìn)度條顯示信息

通過update方法可以控制每次進(jìn)度條更新的進(jìn)度。

示例代碼1:

import time
from tqdm import tqdm
 
#  total參數(shù)設(shè)置進(jìn)度條的總長度為100
with tqdm(total=100) as pbar:
    for i in range(100):
        time.sleep(0.1)
        #  每次更新進(jìn)度條的長度為1
        pbar.update(1)

運(yùn)行結(jié)果:

示例代碼2:

import time
from tqdm import tqdm
 
#  total參數(shù)設(shè)置進(jìn)度條的總長度為500
with tqdm(total=500) as pbar:
    for i in range(100):
        time.sleep(0.1)
        #  每次更新進(jìn)度條的長度為3
        pbar.update(3)

運(yùn)行結(jié)果:

除了上述方法之外,我們還能通過另外一種方法來實(shí)現(xiàn)操作。

示例代碼3:

import time
from tqdm import tqdm
 
#  total參數(shù)設(shè)置進(jìn)度條的總長度為100
pbar = tqdm(total=100)
for i in range(100):
    time.sleep(0.1)
    #  每次更新進(jìn)度條的長度為1
    pbar.update(1)
#  關(guān)閉占用的資源
pbar.close()

運(yùn)行結(jié)果:

另外,我們還能通過set_descriptionset_postfix方法設(shè)置進(jìn)度條顯示信息。

示例代碼:

import time
from tqdm import trange
from random import random, randint
 
with trange(100) as t:
    for i in t:
        #  設(shè)置進(jìn)度條左邊顯示的信息
        #  注意:代碼中的GEN是可以手動(dòng)換成其它內(nèi)容的
        t.set_description("GEN %i" % i)
        #  設(shè)置進(jìn)度條右邊顯示的信息
        #  注意:此處代碼中的gen lr lst是可以手動(dòng)換成其它內(nèi)容的
        t.set_postfix(loss=random(), gen=randint(1, 999), lr="h", lst=[1, 2])
        time.sleep(0.1)

運(yùn)行結(jié)果:

令人震驚的是,當(dāng)我們將進(jìn)度條顯示的信息設(shè)置中文時(shí),竟然不會出現(xiàn)亂碼!?。?!

示例代碼:

import time
from tqdm import trange
from random import random, randint
 
with trange(100) as t:
    for i in t:
        #  設(shè)置進(jìn)度條左邊顯示的信息
        #  注意:代碼中的GEN是可以手動(dòng)換成其它內(nèi)容的
        t.set_description("進(jìn)度 %i" % i)
        #  設(shè)置進(jìn)度條右邊顯示的信息
        #  注意:此處代碼中的gen lr lst是可以手動(dòng)換成其它內(nèi)容的
        t.set_postfix(損失=random(), 隨機(jī)=randint(1, 999), 名字="h", 列表=[1, 2])
        time.sleep(0.1)

運(yùn)行結(jié)果:

6.tqdm(range(n))替換為trange(n)

我們在使用tqdm的時(shí)候,可以將tqdm(range(n))替換為trange(n),讓你的代碼看起來更加簡潔而又高大上!

示例代碼:

from tqdm import trange
import time
 
for i in trange(100):
    time.sleep(0.1)
    pass

運(yùn)行結(jié)果:

7.在jupyter notebook中使用進(jìn)度條tqdm:

示例代碼1:

import time
from tqdm import tqdm
for i in tqdm(range(100)):
    print("I'm tqdm!", end=' ')
    time.sleep(0.1)

運(yùn)行結(jié)果:

示例代碼2:

import time
from tqdm import tqdm_notebook
 
for i in tqdm_notebook(range(100), desc="demo"):
    time.sleep(0.1)
    print("I'm tqdm_notebook!", end=' ')

運(yùn)行結(jié)果:

到此這篇關(guān)于python實(shí)現(xiàn)進(jìn)度條的多種實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python 進(jìn)度條內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django中數(shù)據(jù)在前后端傳遞的方式之表單、JSON與ajax

    Django中數(shù)據(jù)在前后端傳遞的方式之表單、JSON與ajax

    Django從后臺往前臺傳遞數(shù)據(jù)時(shí)有多種方法可以實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Django中數(shù)據(jù)在前后端傳遞的方式之表單、JSON與ajax的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • python實(shí)現(xiàn)區(qū)間合并的方法

    python實(shí)現(xiàn)區(qū)間合并的方法

    區(qū)間合并是指將重疊的區(qū)間合并為一個(gè)或多個(gè)不重疊的區(qū)間,本文主要介紹了python實(shí)現(xiàn)區(qū)間合并的方法,文中通過代碼介紹的很詳細(xì),感興趣的可以了解一下
    2024-02-02
  • Python OpenCV實(shí)現(xiàn)基本圖形繪制

    Python OpenCV實(shí)現(xiàn)基本圖形繪制

    這篇文章主要介紹了Python OpenCV實(shí)現(xiàn)基本圖形繪制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • python 字典(dict)按鍵和值排序

    python 字典(dict)按鍵和值排序

    下面小編就為大家?guī)硪黄猵ython 字典(dict)按鍵和值排序。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • python讀取文件指定行內(nèi)容實(shí)例講解

    python讀取文件指定行內(nèi)容實(shí)例講解

    在本篇文章里小編給大家整理的是關(guān)于python讀取文件指定行內(nèi)容實(shí)例講解,需要的朋友們可以參考下。
    2020-03-03
  • Python之Pygame的Draw繪圖

    Python之Pygame的Draw繪圖

    Pygame 中提供了一個(gè)draw模塊用來繪制一些簡單的圖形狀,比如矩形、多邊形、圓形、直線、弧線等。本文主要介紹Pygame中的Draw繪圖,感興趣的同學(xué)可以參考閱讀
    2023-04-04
  • 簡單上手Python中裝飾器的使用

    簡單上手Python中裝飾器的使用

    這篇文章主要介紹了Python中裝飾器的使用,是Python進(jìn)階學(xué)習(xí)中的重要知識,需要的朋友可以參考下
    2015-07-07
  • python制作企業(yè)郵箱的爆破腳本

    python制作企業(yè)郵箱的爆破腳本

    這篇文章主要介紹了python制作企業(yè)郵箱的爆破腳本的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Python高效處理大文件的方法詳解

    Python高效處理大文件的方法詳解

    在這篇文章中,我們將學(xué)習(xí)如何使用multiprocessing、joblib和tqdm?Python包減少大文件的處理時(shí)間。這是一個(gè)簡單的教程,可以適用于任何文件、數(shù)據(jù)庫、圖像、視頻和音頻,感興趣的可以了解一下
    2022-07-07
  • python 字典 setdefault()和get()方法比較詳解

    python 字典 setdefault()和get()方法比較詳解

    這篇文章主要介紹了python 字典 setdefault()和get()方法比較詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評論