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

ブロック文字を使用してターミナルにテキスト進行状況バーを作成する方法

Mary-Kate Olsen
リリース: 2024-12-15 06:41:13
オリジナル
339 人が閲覧しました

How to Create a Text Progress Bar in the Terminal Using Block Characters?

ターミナルでブロック文字を使用したテキスト進行状況バーを作成する

FTP サーバーからのファイルのアップロードとダウンロードは、特に大きなファイルの場合、時間がかかるプロセスになることがあります。このような操作の進行状況に関する視覚的なフィードバックをユーザーに提供すると便利です。これを行う一般的な方法の 1 つは、ターミナルに進行状況バーを表示することです。

進行状況バーにブロック文字を使用する

テキストの進行状況バーは、括弧 ([ などの単純なブロック文字を使用して作成できます)および])、ハイフン (-)、および等号 (=)。これらの文字を繰り返したり組み合わせたりして、操作の進行に合わせて埋められるバーを作成できます。

前の出力をクリアせずに進行状況を表示

進行状況バーを表示しながら以前のコンソール出力を維持するには、次の操作を行うことができます。キャリッジ リターン (r) とライン フィード (n) を使用します。キャリッジ リターンはカーソルを現在の行の先頭に戻し、ライン フィードはカーソルを次の行に進めます。これらの文字をプログレス バーと組み合わせて使用​​すると、前のコンテンツを消去せずにバーを更新できます。

シンプルなプログレス バーの実装

シンプルなプログレス バーを実装する方法の例を次に示します。上記の原則を使用した Python の場合:

from time import sleep

def print_progress_bar(iteration, total, prefix="", suffix="", decimals=1, length=100, fill="#", print_end="\r"):
    percent = ("{0:.{1}f}".format(100 * (iteration / float(total)), decimals))
    filled_length = int(length * iteration // total)
    bar = fill * filled_length + "-" * (length - filled_length)
    print(f"\r{prefix} |{bar}| {percent}% {suffix}", end=print_end)
    if iteration == total:
        print()

# A sample list of 57 items
items = list(range(57))

# Iterate through the list and display the progress bar
for i, item in enumerate(items):
    sleep(0.1)
    print_progress_bar(i + 1, len(items), prefix="Progress:", suffix="Complete", length=50)
ログイン後にコピー

プログレス バーのカスタマイズ

上記の例これは単なる基本的な実装であり、ニーズに合わせて進行状況バーをカスタマイズできます。たとえば、バーの作成に使用する文字、バーの長さ、パーセンテージで表示される小数点以下の桁数を変更できます。プレフィックスまたはサフィックスを追加して、操作に関する追加情報を提供することもできます。

これらの原則に従うことで、コンソール アプリケーションにテキストの進行状況バーを簡単に作成して、ユーザーに進行状況に関する視覚的なフィードバックを提供できます。

以上がブロック文字を使用してターミナルにテキスト進行状況バーを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート