今天写了一个控制台下的进度条小程序,遇到了关于flush的问题,在这里小小的总结一下。
首先在要flush的字符串必须后边加上'\r'(回车) 将数据送入缓冲区这样在新打印字符的时候就可以将原来的显示覆盖掉
instance:
sys.stdout.write('Here are some codes.\r') sys.stdout.flush() time.sleep(2) sys.stdout.write('Here are some new codes.\r') sys.stdout.flush() time.sleep(2)
运行前两秒结果:
Here are some codes.
运行后两秒结果:
Here are some new codes.
>>>
可以看出后面输出的一行把前边的一行给覆盖掉了。
本文介绍了如何在控制台下实现进度条,并讨论了flush机制的应用。通过在字符串后添加'
'并使用sys.stdout.flush(),可以实现在新打印字符时覆盖原有显示的效果。


被折叠的 条评论
为什么被折叠?



