以下代码应该以 1 秒的间隔从 1 打印到 10,但是它在实际打印任何内容之前等待 10 秒,然后一次打印所有内容。如何取消缓冲输出?
import sys
import time
for count in range(10) :
sys.stdout.write(str(count))
sys.stdout.flush()
time.sleep(1)
以下代码应该以 1 秒的间隔从 1 打印到 10,但是它在实际打印任何内容之前等待 10 秒,然后一次打印所有内容。如何取消缓冲输出?
import sys
import time
for count in range(10) :
sys.stdout.write(str(count))
sys.stdout.flush()
time.sleep(1)
发现问题
import sys
import time
for count in range(10) :
sys.stdout.write("\b%s" % count)
sys.stdout.flush()
time.sleep(.1)
不知道为什么 python 像这样奇怪,但显然它接受了这一点。您的代码应该可以正常工作,但我猜 python 只是不喜欢您。
Python 2.7、3.2 和 3.3 都不允许在您的 write 调用中使用关键字参数。那是正确的代码吗?print 函数当然允许 end 关键字并且不应该与 write 混淆。写入不添加换行符。
删除 'end' 关键字参数和测试表明代码工作正常。