Python在OSX终端中逐字符打印

Python在OSX终端中逐字符打印,python,terminal,osx-yosemite,Python,Terminal,Osx Yosemite,我试图让Python将.txt文件的内容复制到OSX10.10上的bash终端中,但直到该行的每个字符都打印到该行后,该行才会打印。有没有办法让Python逐行打印每个字符,而不是逐行打印?我的代码设计为在字符之间等待,但每行打印都需要很长时间: while True: character = text_file.read(1) if not character: break else: sys.stdout.write(character)

我试图让Python将.txt文件的内容复制到OSX10.10上的bash终端中,但直到该行的每个字符都打印到该行后,该行才会打印。有没有办法让Python逐行打印每个字符,而不是逐行打印?我的代码设计为在字符之间等待,但每行打印都需要很长时间:

while True:
    character = text_file.read(1)
    if not character: break
    else:
        sys.stdout.write(character)
        time.sleep(0.050)

当我在空闲状态下运行此代码时,字符一次打印一个。在终端中,打印行需要几秒钟,每行一次打印所有行。有没有办法重现我在终端空闲时看到的行为?

如果要删除行末尾的新行

你可以简单地

print character,
将删除新行\n.

在sys.stdout.writecharacter之后添加sys.stdout.flush


原因应该是标准输出被缓冲。

Perfect。我没想到。我猜IDLE就是没有一个标准输出的缓冲区。谢谢你的解释@用户2569332我很高兴能为您提供帮助: