python – 为什么同行打印之间没有延迟?

print 'foo',
time.sleep(1)
print 'bar'

这似乎首先运行time.sleep(1),然后一次打印“foo bar”.

但是,在自己的行上打印foo和bar会在print语句之间产生预期的延迟:

print 'foo'
time.sleep(1)
print 'bar'

是否有东西堆叠所有打印语句,直到收到新的行字符?

最佳答案 print默认打印到sys.stdout并且是行缓冲的.你可以在print语句后每次刷新缓冲区

import time
import sys

print 'foo'
sys.stdout.flush()
time.sleep(1)
print 'bar

参考:sys

另请阅读:How to flush output of Python print?

点赞