ホームページ >バックエンド開発 >Python チュートリアル >同じ行のコンソール出力を上書きするにはどうすればよいですか?

同じ行のコンソール出力を上書きするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-05 10:01:15784ブラウズ

How to Overwrite Console Output on the Same Line?

同じ画面行に動的出力を表示する方法

状況によっては、現在のコンソール出力を新しいデータに置き換えることが望ましい場合があります。追加するよりも。一般的なアプローチの 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 サイトの他の関連記事を参照してください。

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