我想在说话前打印一条线。当我在IDLE中运行程序时,它工作正常。但是在编译之后,首先说出文本然后打印。任何人都可以帮助我吗?
我尝试了不同的方法来键入相同的代码,但它没有用。
import pyttsx3
engine = pyttsx3.init()
engine.setProperty('rate', 150)
engine.setProperty('volume', 1)
def say(y):
print(y, end='')
engine.say(y)
engine.runAndWait()
say('Hello World')
我想在说话之前打印一行,但在编译之后总是先说出来。
在某些环境中,Python的print语句被“缓冲”,直到空闲时才实际打印。
尝试添加
import sys
然后做
print(y, end='')
sys.stdout.flush()
刷新标准输出将强制Python在继续之前实际显示打印文本。
@JohnAnderson在主要问题中的评论完全符合我的要求。添加flush=True
in打印声明做到了