使用環境:Python 2.7.11

 

for i in range(10):

   print i 

 

とすると、

 

0

1

2

...

 

と print 後に改行される。

これを、

1 2 3 ... 

と横につなげたい。

 

Python 3.x だと print関数を使って

 

print("abc", end=" ") 

 

とすることで、文字列末に自動的に追加される文字コードを改行から別の物に変更することができる。

 

Python 2.7 の場合、six module を用いて

 

import six

six.print_("abc", end=" ") 

 

とすれば、同様の事ができるようになる。

しかし、処理の進行度を示したいような場合、

 

for i in range(10):

   six.print(i, end=" ")

   (他の時間のかかる処理)

 

これだと、for ループが終わった後に stadout に一気に表示されてしまい、進行度を示す役を果たさないので、

 

import sys

 

をしておいて、

 

for i in range(10):

   six.print(i, end=" ")

   sys.stdout.flush()

   (他の時間のかかる処理)

 

というように flush() する。

 

 

 


やじるし Python 関連メモの目次