91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何實現酷炫進度條

發布時間:2022-04-12 10:34:56 來源:億速云 閱讀:275 作者:iii 欄目:開發技術

這篇文章主要介紹了Python如何實現酷炫進度條的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python如何實現酷炫進度條文章都會有所收獲,下面我們一起來看看吧。

1、自定義ProgressBar

最原始的辦法就是不借助任何第三方工具,自己寫一個進度條函數,使用time模塊配合sys模塊即可

import sys
import time

def progressbar(it, prefix="", size=60, file=sys.stdout):
    count = len(it)
    def show(j):
        x = int(size*j/count)
        file.write("%s[%s%s] %i/%i\r" % (prefix, "#"*x, "."*(size-x), j, count))
        file.flush()        
    show(0)
    for i, item in enumerate(it):
        yield item
        show(i+1)
    file.write("\n")
    file.flush()

    
for i in progressbar(range(15), "Computing: ", 40):
    do_something()
    time.sleep(0.1)

Python如何實現酷炫進度條

自己定義的好處就是可以將進度條定義成我們想要的形式比如上面就是使用#與·來輸出,為什么不用print?因為sys.stdout就是print的一種默認輸出格式,而sys.stdout.write()可以不換行打印,sys.stdout.flush()可以立即刷新輸出的內容。當然也可以封裝成類來更好的使用,但效果是類似的。

from __future__ import print_function
import sys
import re


class ProgressBar(object):
    DEFAULT = 'Progress: %(bar)s %(percent)3d%%'
    FULL = '%(bar)s %(current)d/%(total)d (%(percent)3d%%) %(remaining)d to go'

    def __init__(self, total, width=40, fmt=DEFAULT, symbol='=',
                 output=sys.stderr):
        assert len(symbol) == 1

        self.total = total
        self.width = width
        self.symbol = symbol
        self.output = output
        self.fmt = re.sub(r'(?P<name>%\(.+?\))d',
            r'\g<name>%dd' % len(str(total)), fmt)

        self.current = 0

    def __call__(self):
        percent = self.current / float(self.total)
        size = int(self.width * percent)
        remaining = self.total - self.current
        bar = '[' + self.symbol * size + ' ' * (self.width - size) + ']'

        args = {
            'total': self.total,
            'bar': bar,
            'current': self.current,
            'percent': percent * 100,
            'remaining': remaining
        }
        print('\r' + self.fmt % args, file=self.output, end='')

    def done(self):
        self.current = self.total
        self()
        print('', file=self.output)
        
from time import sleep

progress = ProgressBar(80, fmt=ProgressBar.FULL)

for x in range(progress.total):
    progress.current += 1
    progress()
    sleep(0.1)
progress.done()

Python如何實現酷炫進度條

2、tqdm

之前我們說了,自定義的好處就是可以自己修改,那么使用第三方庫的好處就是可以偷懶,不用自己寫,拿來就能用。比如提到Python進度條那肯定會想到常用的tqdm,安裝很簡單pip install tqdm即可,使用也很簡單,幾行代碼即可實現上面的進度條

from tqdm import trange
import time
for i in trange(10): 
    time.sleep(1)

Python如何實現酷炫進度條

當然tqdm作為老牌的Python進度條工具,循環處理、多進程、多線程、遞歸處理等都是支持的,你可以在官方GitHub上學習 、解鎖更多的玩法。

3、Rich

上面兩種實現Python進度條的方法都學會了嗎,雖然簡單但是看上去并不漂亮,顏色也比較單調。所以最后壓軸出場的就是一款比較小眾的第三方庫Rich 。Rich主要是用于在終端中打印豐富多彩的文本(最高支持1670萬色)

Python如何實現酷炫進度條

所以當然可以使用Rich打印進度條,顯示完成百分比,剩余時間,數據傳輸速度等都可以。并且樣式更加酷炫,并且它是高度可配置的,因此我們可以對其進行自定義以顯示所需的任何信息。使用也很簡單,比如我們使用Rich來實現一個最簡單的進度條

from rich.progress import track
import  time

for step in track(range(30)):
    time.sleep(0.5)

Python如何實現酷炫進度條

同時Rich支持多個進度條,這在多任務情況下監控的進度很有用

Python如何實現酷炫進度條

關于“Python如何實現酷炫進度條”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Python如何實現酷炫進度條”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金溪县| 九寨沟县| 库尔勒市| 莫力| 吉木萨尔县| 大洼县| 九龙城区| 镇雄县| 建瓯市| 广西| 岳西县| 山东省| 铜陵市| 叙永县| 昌吉市| 鸡西市| 江川县| 图木舒克市| 四川省| 锦屏县| 台东县| 灵寿县| 白城市| 连山| 酉阳| 伊宁县| 武清区| 彰武县| 高州市| 兴国县| 扬中市| 佛教| 康定县| 柘城县| 剑阁县| 清流县| 抚远县| 陇西县| 桐庐县| 安塞县| 富裕县|