ホームページ >バックエンド開発 >Python チュートリアル >Python を使用してターミナルにテキスト プログレス バーを作成する方法

Python を使用してターミナルにテキスト プログレス バーを作成する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-02 17:26:12681ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。