わかりました、私は他の誰かに代わってこの質問をしますが、それが可能かどうか、またどのように可能かについても知りたいです.
文字列を生成する特定のコード行があるとしましょう
残り時間: 4
この文字列が印刷された後、「4」の値を編集して「3」に変更し、同じ行に新しい文字列を再印刷して、Time left: 4 を Time left に置き換える方法はありますか? : 3 改行を発生させずに印刷します。
私が説明するために最善を尽くした質問を理解していただければ幸いです。
わかりました、私は他の誰かに代わってこの質問をしますが、それが可能かどうか、またどのように可能かについても知りたいです.
文字列を生成する特定のコード行があるとしましょう
残り時間: 4
この文字列が印刷された後、「4」の値を編集して「3」に変更し、同じ行に新しい文字列を再印刷して、Time left: 4 を Time left に置き換える方法はありますか? : 3 改行を発生させずに印刷します。
私が説明するために最善を尽くした質問を理解していただければ幸いです。
キャリッジ リターン ( ) を出力し、出力引数に追加して、ステートメントが改行を書き込んでいない\r
ことを確認します。各印刷の後、必ず を使用して標準出力をフラッシュしてください。例えば:print
end=''
sys.stdout.flush()
import time
import sys
for i in range(4, 0, -1):
print('\rTime left:', i, end='')
sys.stdout.flush()
time.sleep(1)
Python 2.x では、 whereprint
は関数ではなくステートメントであり、末尾にコンマを追加して改行を防止します。
import time
import sys
for i in range(4, 0, -1):
print '\rTime left:', i,
sys.stdout.flush()
time.sleep(1)
1 つの方法は、バックスペース エスケープ文字 ( \b
) を出力することです。これにより、テキスト カーソルが 1 文字戻ります。ただし、後でテキストを置き換えるために何かを印刷するのはあなたの責任です。
たとえば、ターミナルの現在のテキストが であるTime left: 4
場合に を印刷する"\b"
と、ユーザーには何も変更されていないことがわかります。ただし、 を印刷"\b5"
すると、5 に置き換えられます。