使用環境: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() する。