из __future__ импорт print_function не работает должным образом - PullRequest
0 голосов
/ 07 марта 2019

Я использовал ответ здесь , чтобы напечатать ту же строку в Python 2.

from __future__ import print_function
import time

num = '\r'
for i in xrange(10):
    num += str(i+1) + ' '
    print (num, end='')
    time.sleep(0.3)
print('\n')

Но он печатает всю строку только после завершения цикла. Что здесь не так?

Python 2.7.9.

1 Ответ

2 голосов
/ 07 марта 2019

Комментарии в связанном ответе дают причину - sys.stdout.flush() все еще требуется для очистки буфера вывода.

from __future__ import print_function
import time

num = '\r'
for i in xrange(10):
    num += str(i+1) + ' '
    print (num, end='')
    sys.stdout.flush()
    time.sleep(0.3)
print('\n')
...