1、一般的打印(静态的)
一般的打印都是静态的,打印的是什么后面不会有改动
比如
import sys
import time
for i in range(5):
time.sleep(1)
print("\r now is :{0}\n".format(i))
输出结果:
2.动态刷新一行
写法多样:
sys.stdout.write('\r now is: %d' % (i))
sys.stdout.flush()
sys.stdout.write("\r now is :{0}".format(i))
sys.stdout.flush()
举例:test.py
import sys
import time
for i in range(5):
time.sleep(2)
sys.stdout.write("\r now is :{0}".format(i))
sys.stdout.flush()
打印效果如下图:
3.动态刷新多行
这里使用了清屏os.system(‘clear’)的操作,多行的数据只使用\r好像不能同时刷新多行。
import sys
import time
import os
import re
for i in range(5):
os.system('clear')
a='''
id name sex
1 lucy girl
'''
a=re.sub("1",str(i),a)
sys.stdout.write("\r{0}".format(a))
sys.stdout.flush()
time.sleep(2)
打印效果:
4.思考:
如果步骤2不加清屏的操作,打印结果会是下面的这个样子,除了上面步骤2的解决方法,如果有其他方式可以实现动态刷新数据的,欢迎留言!