使用 Python 实现持久终端输出
在 Python 中,存在一个问题:如果没有存在换行符。发生这种情况是由于输出缓冲,输出被临时存储以提高性能。
发生了什么?
默认情况下,终端将输出分为几行。如果一行结束时没有换行符,则输出将保留在缓冲区中直至完成。因此,当 print 语句后没有换行符时,直到循环或程序终止时才会显示输出。
修复问题
For单次打印:
在 Python 3 中, print 函数接受一个flush参数。将其设置为 True 会强制立即显示输出:
import time for _ in range(10): print('.', end=' ', flush=True) time.sleep(.2) # or other time-consuming work
在 Python 2 中,print 是语句,使用标准输出流 (sys.stdout) 的刷新方法:
import time for _ in range(10): print '.', sys.stdout.flush() time.sleep(.2) # or other time-consuming work
对于多次打印:
您可以完全禁用输出行缓冲,以便更有效地处理多次打印,而不是在每次打印后刷新。有多种解决方案:
以上是如何在Python中强制立即终端输出?的详细内容。更多信息请关注PHP中文网其他相关文章!