ホームページ >バックエンド開発 >Python チュートリアル >Python で以前の出力を標準出力 (Stdout) に上書きするにはどうすればよいですか?

Python で以前の出力を標準出力 (Stdout) に上書きするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-28 20:25:11415ブラウズ

How Can I Overwrite Previous Output to Standard Output (Stdout) in Python?

前の出力を標準出力に上書きする

多くのプログラミング シナリオでは、端末に表示される出力を変更または更新する必要があります。この記事では、以前の出力を stdout に上書きし、同じ行の更新された値に置き換える方法について説明します。

Carriage Return (r)

Python は、 r (キャリッジ リターン) 文字を使用すると、次の行に進まずにカーソルを現在の行の先頭に戻します。 r を使用すると、前の print ステートメントを上書きできます。

# Python 3
for x in range(10):
    print(x, end='\r')
print()

# Python 2.7
from __future__ import print_function
for x in range(10):
    print(x, end='\r')
print()

Print ステートメントの末尾のカンマ

Python 2 では、先頭のカンマprint ステートメントの終わりにより次の行に進むことができなくなり、上書き:

# Python 2
for x in range(10):
    print '{0}\r'.format(x),
print

行末までクリア (x1b[1K)

新しいテキスト行が前のテキスト行より短い場合、 x1b[1K (行末までクリア) を使用して残りをクリアできます。文字:

for x in range(75):
    print('*' * (75 - x), x, end='\x1b[1K\r')
print()

行の折り返しを無効にする

デフォルトでは、Python は端末の幅を超える行を折り返します。これを防止し、連続する文字で前の行を確実に上書きするには、x1b[7l:

print('\x1b[7l', end='')  # Disable line wrapping
for x in range(50):
    print(x, end='\r')
print('\x1b[7h', end='')  # Re-enable line wrapping

で行折り返しを無効にします。注: 行折り返しを無効にした後は、行の折り返しを必ず再度有効にして、終了しないようにします。端末が壊れた状態です。

以上がPython で以前の出力を標準出力 (Stdout) に上書きするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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