您应该
sys.stdout.flush()在每次迭代后使用
问题是stdout用换行符刷新或用
sys.stdout.flush()
所以结果是
import sysfrom time import sleepwords = "This is just a test :P"for char in words: sleep(0.5) sys.stdout.write(char) sys.stdout.flush()
之所以要缓冲输出,是因为需要执行系统调用才能进行输出,系统调用既昂贵又耗时(由于上下文切换等)。因此,用户空间库尝试缓冲它,如果需要,您需要手动刷新它。
仅出于完整性考虑…错误输出通常是非缓冲的(调试起来很困难)。因此,下面的方法也可以。重要的是要意识到将其打印到错误输出。
import sysfrom time import sleepwords = "This is just a test :P"for char in words: sleep(0.5) sys.stderr.write(char)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)