溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的方法有哪些

發(fā)布時(shí)間:2021-12-18 08:30:14 來源:億速云 閱讀:200 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的方法有哪些”,在日常操作中,相信很多人在Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的方法有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的方法有哪些”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

相信大家對(duì)進(jìn)度條一定不陌生了,比如在我們安裝python庫(kù)的時(shí)候可以看到下載的進(jìn)度,此外在下載文件時(shí)也可以看到類似的進(jìn)度條,比如下圖這種:

Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的方法有哪些

應(yīng)用場(chǎng)景:下載文件、任務(wù)計(jì)時(shí)等

今天辰哥就給大家分享Python的6種不同的實(shí)現(xiàn)實(shí)時(shí)顯示處理進(jìn)度的方式,文中每一種方式都附帶一個(gè)案例,并提供官方文檔,供大家學(xué)習(xí),自定義去修改。

第1種:普通進(jìn)度條

利用打印功能print進(jìn)行實(shí)時(shí)刷新顯示

for i in range(1, 101):
    print("\r", end="")
    print("進(jìn)度: {}%: ".format(i), "▓" * (i // 2), end="")
    sys.stdout.flush()
    time.sleep(0.05)

Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的方法有哪些

第2種:帶時(shí)間的普通進(jìn)度條

第2種同樣通過print進(jìn)行打印進(jìn)度條,不過還加入了time時(shí)間顯示,顯示進(jìn)度過程中所需要的時(shí)間

t = 60
print("**************帶時(shí)間的進(jìn)度條**************")
start = time.perf_counter()
for i in range(t + 1):
    finsh = "▓" * i
    need_do = "-" * (t - i)
    progress = (i / t) * 100
    dur = time.perf_counter() - start
    print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(progress, finsh, need_do, dur), end="")
    time.sleep(0.05)

Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的方法有哪些

第3種:tqdm庫(kù)

tqdm是專門用于進(jìn)度條的一個(gè)python庫(kù),詳細(xì)的用法可以參考下方官方文檔

https://pypi.org/project/tqdm/#description

from tqdm import tqdm
for i in tqdm(range(1, 60)):
    """
    代碼
    """
    # 假設(shè)這代碼部分需要0.05s,循環(huán)執(zhí)行60次
    time.sleep(0.05)

Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的方法有哪些

第4種: alive_progress庫(kù)

alive_progress是一個(gè)動(dòng)態(tài)的實(shí)時(shí)顯示進(jìn)度條庫(kù),詳細(xì)的用法可以參考下方官方文檔

https://pypi.org/project/alive-progress/#description

from alive_progress import alive_bar
# 假設(shè)需要執(zhí)行100個(gè)任務(wù)
with alive_bar(len(range(100))) as bar:
    for item in range(100): # 遍歷任務(wù)
        bar()  # 顯示進(jìn)度
        """
        代碼
        """
        # 假設(shè)這代碼部分需要0.05s
        time.sleep(0.05)

Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的方法有哪些

第5種:PySimpleGUI庫(kù)

PySimpleGUI也是一種動(dòng)態(tài)進(jìn)度條庫(kù),該庫(kù)是自帶GUI界面(基于PyQt,Tkinter等),詳細(xì)的用法可以參考下方官方文檔

https://pypi.org/project/PySimpleGUI/#description

import PySimpleGUI as sg
count = range(100)
for i, item in enumerate(count):
    sg.one_line_progress_meter('實(shí)時(shí)進(jìn)度條', i + 1, len(count), '-key-')
    """
    代碼
    """
    # 假設(shè)這代碼部分需要0.05s
    time.sleep(0.05)

Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的方法有哪些

第6種:progressbar庫(kù)

https://pypi.org/project/progressbar/#description

import progressbar
p = progressbar.ProgressBar()
# # 假設(shè)需要執(zhí)行100個(gè)任務(wù),放到ProgressBar()中
for i in p(range(100)):
    """
    代碼
    """
    # 假設(shè)這代碼部分需要0.05s
    time.sleep(0.05)

Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的方法有哪些

到此,關(guān)于“Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的方法有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI