Python でのコンソール出力のオーバーライド
プログラミングでは、時間のかかるタスクの実行中に進捗情報をユーザーに表示することが望ましいことがよくあります。よく使用される手法の 1 つは、コンソールの進行状況バーまたはカウンターを更新することです。この記事では、Python でこれを実現する方法について説明します。
コンソール出力の置換
コンソール出力を置換する簡単な方法は、「r」エスケープ シーケンスを使用することです。カーソルを現在の行の先頭に移動します。更新された文字列の前に「r」を書き、改行を省略すると、前の出力を効果的に上書きできます。
<code class="python">import sys for i in range(10): sys.stdout.write("\rDoing thing %i" % i) sys.stdout.flush()</code>
これにより、ループ内の最新の反復でコンソールが継続的に上書きされます。
進行状況バー
より高度な進行状況インジケーターについては、次の関数を使用できます:
<code class="python">def start_progress(title): sys.stdout.write(title + ": [" + "-" * 40 + "]") sys.stdout.flush() def progress(x): x = int(x * 40 // 100) sys.stdout.write("#" * (x - progress_x)) sys.stdout.flush() def end_progress(): sys.stdout.write("#" * (40 - progress_x) + "]\n") sys.stdout.flush()</code>
この関数はタイトルを入力として受け取り、進行状況バーを表示します。コンソールで。 progress 関数は進行状況のパーセンテージを更新し、end_progress 関数はプログレス バーを完成させます。
Call Sequence
プログレス バーを使用するには、start_progress を呼び出して初期化してから、進行状況を複数回呼び出してパーセンテージを更新します。最後に、end_progress を呼び出して進行状況バーを完成させます。
<code class="python">start_progress("My Long Task") progress(50) progress(75) end_progress()</code>
以上がPython でコンソール出力を上書きする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。