程序是如何将数据输出到终端的呢?你肯定会说调用了print方法,那print方法内部是怎么实现的呢?事实上,print的内部实现了标准的输出流,先将数据输出到缓冲区,再将缓冲区里的数据刷新到终端显示。
数据从缓冲区刷新到终端:
flush():手动将缓冲区的数据刷新到终端,但是不会清空缓冲区
当缓冲区满时,自动刷新到终端,并清空缓冲区
程序终止时,缓冲区数据自动刷新到终端,并清空缓冲区
write("\n") :遇到\n时,将缓冲区里的数据刷新到终端,并清空缓冲区
write("\r") :遇到\r时,清空缓冲区数据并清空终端信息
示例一:旋转符号
import sys,time
s = ["\\","|","/","-","|","-"]
while True:
for i in s:
sys.stdout.write("\r") # 清空终端并清空缓冲区
sys.stdout.write(i) # 往缓冲区里写数据
sys.stdout.flush() # 将缓冲区里的数据刷新到终端,但是不会清空缓冲区
time.sleep(0.5)
10月-05-2018 10-13-43.gif
示例二:下载进度条
import time
i