ホームページ  >  記事  >  バックエンド開発  >  Python でコンソール出力をカウンターとプログレスバーに置き換える方法は?

Python でコンソール出力をカウンターとプログレスバーに置き換える方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-03 14:51:30145ブラウズ

How to Replace Console Output with a Counter and Progress Bar in Python?

Python でのコンソール出力の置き換え

Python の多用途な性質により、カスタム コンソール出力を特定のニーズに合わせて調整できます。一般的な手法の 1 つは、その場で更新される動的コンソール カウンターを作成することです。

クエリ: 出力をカウンターに置き換える

コンソール出力を進行状況カウンターに置き換えるには、ループを使用します。各反復の実行後にステータス メッセージを表示するように変更できます。ステータスごとに新しい行が含まれていた以前の出力とは異なり、このカウンターは最後に表示された行のみを更新します。

解決策: 'r' を使用する

1 つの簡単な方法解決策には、新しいステータス メッセージの前に復帰文字「r」を挿入し、改行文字を避けることが含まれます。これにより、文字列が短くならないことが保証され、文字列の長さが一定のままであることが期待される場合に実行可能なアプローチになります。

例:

import sys

for i in range(5):
    sys.stdout.write("\rDoing thing %d" % i)
    sys.stdout.flush()

拡張ソリューション: Progress Bar

より洗練された進行状況表示のために、進行状況バーを実装できます。次のコードは、単純なプログレス バー関数を提供します。

def start_progress(title):
    sys.stdout.write(title + ": [" + "-" * 40 + "]" + chr(8) * 41)
    sys.stdout.flush()
    progress_x = 0

def progress(x):
    global progress_x
    x = int(x * 40 // 100)
    sys.stdout.write("#" * (x - progress_x))
    sys.stdout.flush()
    progress_x = x

def end_progress():
    sys.stdout.write("#" * (40 - progress_x) + "]\n")
    sys.stdout.flush()

start_progress 関数は、タイトルの説明を使用してプログレス バーを初期化します。 progress(x) は、完了率 (x) でバーを更新します。最後に、end_progress で進行状況の表示を終了します。

以上がPython でコンソール出力をカウンターとプログレスバーに置き換える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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