Python sys.stdout.flush()不起作用

时间:2012-10-06 00:36:34

标签: python-3.x stdout sleep

以下代码应该从1到10打印,间隔1秒,但是在实际打印任何内容之前等待10秒,然后立即打印所有内容。如何解除输出缓冲?

import sys
import time
for count in range(10) :
   sys.stdout.write(str(count))
   sys.stdout.flush()
   time.sleep(1)

2 个答案:

答案 0 :(得分:1)

发现问题

import sys
import time
for count in range(10) :
   sys.stdout.write("\b%s" % count)
   sys.stdout.flush()
   time.sleep(.1)

不知道为什么python会像这样奇怪,但显然它接受了这一点。你的代码应该运行良好,但我猜python只是不喜欢你。

答案 1 :(得分:0)

Python 2.7,3.2和3.3都不允许在您的写入调用中使用关键字参数。这是正确的代码吗? print函数当然允许结束关键字,不应该与write混淆。写入不会添加换行符。

删除'end'关键字参数和测试显示代码工作正常。