8

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

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

2 回答 2

1

发现问题

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

不知道为什么 python 像这样奇怪,但显然它接受了这一点。您的代码应该可以正常工作,但我猜 python 只是不喜欢您。

于 2014-07-07T20:24:40.903 回答
0

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

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

于 2012-10-06T00:43:52.887 回答