Can';在Mac终端上运行时间延迟文本(Python)
我的Mac上的终端有问题。 我正在尝试打印延迟文本(就像它出现在打字机上一样),当我在在线编译器上测试时,代码(如下)是正确的Can';在Mac终端上运行时间延迟文本(Python),python,text,delay,typewriter,Python,Text,Delay,Typewriter,我的Mac上的终端有问题。 我正在尝试打印延迟文本(就像它出现在打字机上一样),当我在在线编译器上测试时,代码(如下)是正确的 import sys import time intro1= "Welcome player. What's your name?" for x in intro1: sys.stdout.write(x) time.sleep(0.2) 但我的Mac终端只是冻结了一秒钟,然后一次就把整个报表打印出来。我在Mac上安装了Python 2.7.10
import sys
import time
intro1= "Welcome player. What's your name?"
for x in intro1:
sys.stdout.write(x)
time.sleep(0.2)
但我的Mac终端只是冻结了一秒钟,然后一次就把整个报表打印出来。我在Mac上安装了Python 2.7.10。我在网上查了一下,我想我的终端为了方便起见正在削减缓冲区,但现在我实际上需要缓冲区(我将大量打印延迟的文本)。在我的终端上是否有任何语句来打开缓冲区(或者修复它,因为它应该默认设置)?非常感谢您需要在每个
sys.stdout.flush()之后添加sys.stdout.flush()
,以强制输出字符,而不是让其得到缓冲:
import sys
import time
introduction = "Welcome player. What's your name? "
for character in introduction:
sys.stdout.write(character)
sys.stdout.flush()
time.sleep(0.2)
name = raw_input()
每次我想打印东西时都必须这样做吗?在程序前是否有一条语句来提醒终端不能缓冲?感谢您的帮助。btwI不认为您可以关闭缓冲,因此您的问题的答案是肯定的:您每次都必须这样做。但是,您可以定义一个函数write\u typewriter(text,delay)
,使代码保持简短。