同じ画面行に動的出力を表示する方法
状況によっては、現在のコンソール出力を新しいデータに置き換えることが望ましい場合があります。追加するよりも。一般的なアプローチの 1 つは、復帰文字 ('r') を使用して現在の行の先頭に戻ることです。
簡易バージョン:
for x in range(10): print(x, end='\r') print()
By各 print ステートメントを「r」で終了すると、カーソルは次の行に進まずに行の先頭に戻ります。これにより、後続の print ステートメントで前の出力を上書きできるようになります。
行のクリーニング:
新しい出力が現在の行より短い可能性がある場合は、追加の手順が必要です。残りの文字をクリアするには:
for x in range(75): print('*' * (75 - x), x, end='\x1b[1K\r') print()
エスケープ シーケンス 'x1b[1K' は、カーソル位置から最後までのすべての文字をクリアします。
長い行の折り返し:
行の幅を超える出力の場合、行の折り返しを無効にして、連続する文字が相互に上書きされるようにすることができます:
# Disable line wrapping print('\x1b[7l', end='') # Overwrite output for x in range(75): print('*' * (75 - x), x, end='\r') # Re-enable line wrapping print('\x1b[7h', end='') # Advance to next line print()
注: 行折り返しを無効にした後、再度有効にすることが重要です。今後のコンソール出力に関する問題。
以上が同じ行のコンソール出力を上書きするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。