import time for i in range(101): time.sleep(0.1) print('\r%s%% : %s' % (i, '*'*i), end='', flush=True) print() for i in range(101): time.sleep(0.1) number = i//2 progress_bar = '\r%s%% : %s\n' % (i, '*'*number) if i == 100 else '\r%s%% : %s' % (i, '*'*number) print(progress_bar, end='', flush=True)
print() 函数会把内容放到内存中, 内存中的内容并不一定能够及时刷新显示到屏幕中(应该是要满足某个条件,这个条件现在还不清楚)。 使用flush=True之后,会在print结束之后,不管你有没有达到条件,立即将内存中的东西显示到屏幕上,清空缓存。
使用场景:
1.尤其是在while循环中,要想每进行一次while循环体,在屏幕上更新打印的内容就得使用flush = True的参数。
2. 打开一个文件, 向其写入字符串, 在关闭文件f.close()之前, 打开文件是看不到写入的字符的。 要想在关闭之前实时的看到写入的字符串,应该用flush = True.