[解決済み] Pythonでstdoutに前の印刷を上書きするには?
2022-04-28 14:28:07
質問
以下のようなコードがあった場合。
for x in range(10):
print x
という出力を得ることになる。
1
2
etc..
改行を表示する代わりに、前の値を置き換えて同じ行に新しい値で上書きしたいのです。
どのように解決するのですか?
簡易版
一つの方法として、キャリッジリターン(
'\r'
) 文字を使用すると、次の行に進まずに行頭に戻ることができます。
パイソン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()
Python 2.7
for x in range(10):
print '{}\r'.format(x),
print
Python 2.0-2.6
for x in range(10):
print '{0}\r'.format(x),
print
後者2つ(Python2のみ)の場合、print文の最後のカンマは、次の行に行かないようにするためのものです。最後のprint文は次の行に進むので、プロンプトが最終出力を上書きすることはありません。
行内清掃
新しい行のテキストが既存の行より短くないことを保証できない場合は、「行末までクリア」というエスケープシーケンスを追加すればよいのです。
'\x1b[1K'
(
'\x1b'
= ESC)。
for x in range(75):
print('*' * (75 - x), x, end='\x1b[1K\r')
print()
関連
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] Pythonで改行(行継続)をするにはどうしたらいいですか?
-
[解決済み] シェルコマンドの実行と出力のキャプチャ
-
[解決済み] print()を使用してクラスのインスタンスを表示するには?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
Pythonによるjieba分割ライブラリ
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
Python 入出力と高次代入の基礎知識
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")