Python 實現進度條的六種方式


一、普通進度條

示例代碼

import sys
import time


def progress_bar():
    for i in range(1, 101):
        print("\r", end="")
        print("Download progress: {}%: ".format(i), "" * (i // 2), end="")
        sys.stdout.flush()
        time.sleep(0.05)

if __name__ == '__main__':
    progress_bar()

 

展現形式

 

二、帶時間的進度條

  導入time模塊來計算代碼運行的時間,加上代碼迭代進度使用格式化字符串來輸出代碼運行進度

示例代碼

import time

scale = 50
print("執行開始,祈禱不報錯".center(scale // 2,"-"))
start = time.perf_counter()
for i in range(scale + 1):
    a = "*" * i
    b = "." * (scale - i)
    c = (i / scale) * 100
    dur = time.perf_counter() - start
    print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end = "")
    time.sleep(0.1)

print("\n"+"執行結束,萬幸".center(scale // 2,"-"))

 

展現形式

 

 

三、TPDM 進度條

  這是一個專門生成進度條的工具包,可以使用pip在終端進行下載,當然還能切換進度條風格

 示例代碼

from time import sleep
from tqdm import tqdm
# 這里同樣的,tqdm就是這個進度條最常用的一個方法 # 里面存一個可迭代對象 for i in tqdm(range(1, 500)): # 模擬你的任務 sleep(0.01) sleep(0.5)

 

展現形式

 

 

四、progress 進度條

  只需要定義迭代的次數、進度條類型並在每次迭代時告知進度條即可

相關文檔:https://pypi.org/project/progress/1.5/

示例代碼

import time
from progress.bar import IncrementalBar

mylist = [1,2,3,4,5,6,7,8]
bar = IncrementalBar('Countdown', max = len(mylist))
for item in mylist:
    bar.next()
    time.sleep(1)
    bar.finish()

 

展現形式

 

五、alive_progress 進度條

  顧名思義,這個庫可以使得進度條變得生動起來,它比原來我們見過的進度條多了一些動畫效果,需要使用pip進行下載

相關文檔:https://github.com/rsalmei/alive-progress

示例代碼

from alive_progress import alive_bar

# retrieve your set of items
items = range(100)             

# declare your expected total     
with alive_bar(len(items)) as bar:   
    # iterate as usual
    for item in items:               
        # process each item
        bar()
        time.sleep(0.1)

 

展現形式

 

六、可視化進度條

  用 PySimpleGUI 得到圖形化進度條,我們可以加一行簡單的代碼,在命令行腳本中得到圖形化進度條,也是使用pip進行下載

示例代碼

import PySimpleGUI as sg
import time

mylist = [1,2,3,4,5,6,7,8]
for i, item in enumerate(mylist):
    sg.one_line_progress_meter('This is my progress meter!', i+1, len(mylist), '-key-')
    time.sleep(1)

 

展現形式

 

 

 

參考:https://mp.weixin.qq.com/s?__biz=MzI0OTc0MzAwNA==&mid=2247489771&idx=2&sn=ca8071edd84ab418e168770a9d6b957b&chksm=e98d8b18defa020ed004f27ed1d13d4c34f09605a04d77823e3efb627cf0e303726d4e84d942

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM