在OSX终端中逐个字符地打印Python

时间:2014-12-23 05:14:40

标签: python terminal osx-yosemite

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

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

当我在IDLE中运行此代码时,字符一次打印一个。在终端中,线条需要几秒钟才能打印,每行都会同时打印所有行。有没有办法重现我在终端IDLE中看到的行为?

2 个答案:

答案 0 :(得分:0)

如果你想删除该行末尾的新行。

你可以简单地

print character,

将删除新行(\ n)。

答案 1 :(得分:0)

sys.stdout.flush()

之后添加sys.stdout.write(character)

原因应该是stdout的输出被缓冲。