我想先说一行。当我在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')
我想在说话之前先打印一行,但始终在编译后首先说出来。
答案 0 :(得分:0)
在某些环境中,Python的print语句被“缓冲”,直到有空闲时间才被实际打印。
尝试添加
import sys
然后做
print(y, end='')
sys.stdout.flush()
刷新标准输出将强制Python在继续之前实际显示打印的文本。
答案 1 :(得分:0)
@JohnAnderson在主要问题中的评论完全符合我的要求。
在打印语句中添加flush=True
就是了