一般输出到屏幕的时候是一组数据一次性全部显示出来得。这是因为电脑为了提高效率,数据会先暂时放入缓存,等缓存满了或者操作结束了,再一次性将数据进行处理。

类似进度条的情况需要字符一次一个的蹦出来,这时候就需要使用flush()来强制执行这个处理缓存内数据的操作。

上课讲文件flush()的时候,最后提到了这个。就先抄下来了。

import sys,time
for i in range(20):
    sys.stdout.write("#")  # 调用sys在屏幕输出
    sys.stdout.flush()  # 用flush()刷新,没有这句还是会等到缓存满了或者运行到最后了才会一次性全部显示出来
    time.sleep(0.2)  # 停顿0.2然后继续

效果就是屏幕上面"#"号是一个一个的蹦出来的。