LoginSignup
1
1

More than 5 years have passed since last update.

pythonで改行しないで文字列の表示(自分用メモ)

Posted at

pythonで改行しないで文字列を表示したかったので自分用メモ

進捗管理のために1処理ごとにメッセージを表示していたが、一回一回改行されるのがうっとおしく感じた。

test.py
for i in xrange(10):
    print "i = %d"%i

i=1
i=2
i=3
i=4

こんな感じ。
ここで目をつけたのが¥rというエスケープシーケンス。  
昔のタイプライターのなごりで復帰を表す。これが使えるのではないかと思い使ってみる

改行は使わないので文末に,(カンマ)をつけ、確認できるようにスリープもつける。

test2.py
import time
for i in xrange(10):
    print "¥r i = %d"%i,
    time.sleep(0.3);

i=9

何も表示されずにi=9のみが表示される。
javaなどはこの方法でもうまくいったがpythonはできなかった。
そこで、強制フラッシュするsys.stdout.flush()をいれる。

test3.py
import time
import sys
for i in xrange(10):
    print "¥r i = %d"%i,
    sys.stdout.flush()
    time.sleep(0.3)

これでうまく動くようになった。

他にもpython3の標準出力関数を使う方法もあるらしい。
また、調べてみるとやはりたくさんこの問題についての記事があった。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1