从__future__导入print_function无法按预期运行

时间:2019-03-07 06:43:05

标签: python python-2.x

我已经使用答案here在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 个答案:

答案 0 :(得分:2)

链接答案中的注释说明了原因-仍需要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')