Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的6種方法
相信大家對(duì)進(jìn)度條一定不陌生了,比如在我們安裝python庫(kù)的時(shí)候可以看到下載的進(jìn)度,此外在下載文件時(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)
第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)
第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)
第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)
第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)
第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)
文中介紹了這6種實(shí)現(xiàn)實(shí)時(shí)進(jìn)度條方式,并且都提供一個(gè)案例。對(duì)于Python庫(kù)方式的也附帶了官方文檔,便于大家學(xué)習(xí)。
到此這篇關(guān)于Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的6種方法的文章就介紹到這了,更多相關(guān)Python 實(shí)時(shí)顯示進(jìn)度條內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)批量下載ts文件并合并為mp4
這篇文章主要為大家詳細(xì)介紹了如何通過Python語言實(shí)現(xiàn)批量下載ts文件并合并為mp4視頻的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-06-06python 基于 tkinter 做個(gè)學(xué)生版的計(jì)算器
這篇文章主要介紹了基于Python編寫一個(gè)計(jì)算器程序,實(shí)現(xiàn)簡(jiǎn)單的加減乘除和取余二元運(yùn)算,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-09-09python?Sweetviz探索性數(shù)據(jù)可視化分析庫(kù)使用特征詳解
這篇文章主要為大家介紹了python?Sweetviz探索性數(shù)據(jù)可視化分析庫(kù)特征使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01使用python+pygame實(shí)現(xiàn)中秋節(jié)動(dòng)畫效果
馬上就要中秋節(jié)了,使用python可以實(shí)現(xiàn)中秋節(jié)動(dòng)畫效果,包括月亮、兔子和煙花嗎?當(dāng)然是可以的,那該如何實(shí)現(xiàn)呢?這篇文章我們主要使用pygame來實(shí)現(xiàn),文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2023-09-09Python?Scrapy庫(kù)構(gòu)建基礎(chǔ)爬蟲
這篇文章主要為大家介紹了Python?Scrapy庫(kù)構(gòu)建基礎(chǔ)爬蟲示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08學(xué)習(xí)Python中一些實(shí)用的庫(kù)
這篇文章主要介紹了Python學(xué)習(xí)之盤點(diǎn)一些Python中實(shí)用的庫(kù),有需要的同學(xué)可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-09-09Python+Opencv實(shí)現(xiàn)計(jì)算閉合區(qū)域面積
這篇文章主要介紹了利用Python?Opencv計(jì)算閉合區(qū)域的面積的原理以及實(shí)現(xiàn)代碼,文中的講解詳細(xì)易懂,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧2022-03-03Python?調(diào)用GPT-3?API實(shí)現(xiàn)過程詳解
這篇文章主要為大家介紹了Python?調(diào)用GPT-3?API實(shí)現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Keras神經(jīng)網(wǎng)絡(luò)efficientnet模型搭建yolov3目標(biāo)檢測(cè)平臺(tái)
這篇文章主要為大家介紹了Keras利用efficientnet系列模型搭建yolov3目標(biāo)檢測(cè)平臺(tái)的過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05