首頁 > 後端開發 > Python教學 > 如何使用 Python 在終端機中建立文字進度條?

如何使用 Python 在終端機中建立文字進度條?

Mary-Kate Olsen
發布: 2024-12-02 17:26:12
原創
735 人瀏覽過

How to Create a Text Progress Bar in Your Terminal Using Python?

終端機中帶有區塊字元的文字進度條

簡介

在終端機中建立進度條可以透過提供視覺效果來大幅增強使用者體驗任務進度的表示。然而,在更新進度條的同時保持先前控制台輸出的完整性可能是一個挑戰。本文探討如何在 Python 中建立進度條,同時保留先前的文字。

解決方案:自訂進度條函數

這裡有一個可重複使用的進度條函數,可以解決問題:

def printProgressBar(iteration, total, prefix='', suffix='', decimals=1, length=100, fill='█', printEnd='\r'):
    percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
    filledLength = int(length * iteration // total)
    bar = fill * filledLength + '-' * (length - filledLength)
    print(f'\r{prefix} |{bar}| {percent}% {suffix}', end=printEnd)
    if iteration == total:
        print()
登入後複製

功能參數:

Parameter Description
iteration Current iteration of the loop
total Total number of iterations
prefix Prefix text before the progress bar
suffix Suffix text after the progress bar
decimals Number of decimal places for percentage
length Width of the progress bar
fill Character used to fill the progress bar
printEnd End of line character (e.g., 'r')

用法:

要使用進度條,請在循環內呼叫函數:

total_items = 100

for item in range(total_items):
    # Do your processing here...
    printProgressBar(item + 1, total_items)
登入後複製

單次呼叫版本:

對於簡化的用例,請考慮這個單次呼叫版本的進度bar:

def progressBar(iterable, prefix='', suffix='', decimals=1, length=100, fill='█', printEnd='\r'):
    total = len(iterable)
    def printProgressBar(iteration):
        percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
        filledLength = int(length * iteration // total)
        bar = fill * filledLength + '-' * (length - filledLength)
        print(f'\r{prefix} |{bar}| {percent}% {suffix}', end=printEnd)
    printProgressBar(0)
    for i, item in enumerate(iterable):
        yield item
        printProgressBar(i + 1)
    print()

for item in progressBar(range(100)):
    # Do your processing here...
登入後複製

此版本不需要初始呼叫即可將進度條設為 0%,並接受可迭代作為輸入。

Python 2 相容性:

對於Python 2相容性,使用以下程式碼取代Python 3字串格式:

print('\r%s |%s| %s%% %s' % (prefix, bar, percent, suffix), end=printEnd)
登入後複製

結論:

結論:結論:結論:透過利用提供的功能,您可以輕鬆地將文字進度條整合到控制台應用程式中,同時避免刪除先前的文字。可自訂的參數允許自訂適合您特定要求的進度條外觀。

以上是如何使用 Python 在終端機中建立文字進度條?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板