sys.stdout
在python中调用print时,事实上调用了sys.stdout.write(obj+’\n’)
print 将需要的内容打印到控制台,然后追加一个换行符
以下两行代码等价:
sys.stdout.write('hello' + '\n')
print('hello')
当我们打印一些字符时,并不是调用print函数后就立即打印的。一般会先将字符送到缓冲区,然后再打印。如果你想等时间间隔的打印一些字符,但由于缓冲区没满,不会打印。就需要采取一些手段。如每次打印后强行刷新缓冲区。
for i in range(5):
sys.stdout.write("{} ".format(i))
sys.stdout.flush()
time.sleep(1)
# 0 1 2 3 4
想在同一个位置输出也可以,\r表示回车,回到改行第一位,\n才是换行符。
for i in range(5):
print("\r %d" % i, end="")
time.sleep(0.5)
# 或者:
sys.stdout.write("\r %d" % i)
sys.stdout.flush()
time.sleep(0.5)