我正在尝试使用两者之间的计时器在同一行上打印两个字符串.这是代码:
import time
print "hello",
time.sleep(2)
print "world"
Run Code Online (Sandbox Code Playgroud)
但似乎程序等待两秒然后打印两个字符串.
小智 7
问题是,默认情况下,控制台输出是缓冲的.由于Python 3.3 print()支持关键字参数flush(请参阅文档):
print('hello', flush=True)
Run Code Online (Sandbox Code Playgroud)
如果你使用python的先前版本f,你可以像这样强制刷新:
import sys
sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)
在 python 2.7 中,您可以使用future包中的 print_function
from __future__ import print_function
from time import sleep
print("hello, ", end="")
sleep(2)
print("world!")
Run Code Online (Sandbox Code Playgroud)
但就像你说的,这会等待 2 秒,然后打印两个字符串。根据 Gui Rava 的回答,您可以刷新标准输出,这里有一个示例,应该可以让您朝着正确的方向前进:
import time
import sys
def _print(string):
sys.stdout.write(string)
sys.stdout.flush()
_print('hello ')
time.sleep(2)
_print('world')
Run Code Online (Sandbox Code Playgroud)