私はプログレスバーを書いています。これはHow to animate the command line?です。私はPycharmを使用し、Run Tool Windowでこのファイルを実行します。Python3:print(somestring、end = ' r'、flush = True)には何も表示されません。
import time
def show_Remaining_Time(time_delta):
print('Time Remaining: %d' % time_delta, end='\r', flush=True)
if __name__ == '__main__':
count = 0
while True:
show_Remaining_Time(count)
count += 1
time.sleep(1)
ただし、この.pyファイルを実行するとコードには何も表示されません。私は間違って何をしていますか?
私はジョガーの提案が、私はprint
機能を使用する場合、それはまだ動作していないを試してみました。
ただし、次のスクリプトは期待どおりに機能します。
なぜ標準出力動作しますが、印刷()ではない:
import time import sys def show_Remaining_Time(time_delta): sys.stdout.write('\rtime: %d' % time_delta) # Doesn't work if I use 'time: %d\r' sys.stdout.flush() if __name__ == '__main__': count = 0 while True: show_Remaining_Time(count) count += 1 time.sleep(1)
私は今、2つの質問を持っています。
How to animate the command line?が私の場合は最初に書き込む必要がありますが、最後に
\r
を追加することを提案するのはなぜですか?
インタラクティブなインタプリタでうまく動作します。あなたは何か奇妙なシェルで、IDLEシェルを実行していますか? – ShadowRanger
@ShadowRanger PycharmのRun Tool Windowで実行しています。私が 'end = '\ r''を渡さなければ、それは普通の方法で印刷されます。しかし、私は同じ行を更新し続けたいと思います。 – spacegoing
ええ、PyCharmの実行ウィンドウは通常の端末ではありません。あなたが望むかもしれない方法でキャリッジリターンを処理しません。通常のコマンドプロンプトで実行します。 – ShadowRanger