在 Python 中刷新打印输出

Muhammad Waiz Khan 2023年1月30日 2021年2月28日
  1. 在 Python 中使用 print() 函数中的 flush 参数刷新打印输出
  2. 在 Python 中使用 sys.stdout.flush() 方法刷新打印输出
  3. 在 Python 中使用 -u 标志刷新打印输出
在 Python 中刷新打印输出

在本教程中,我们将讨论在 Python 中把 print()sys.stdout.write() 等打印函数的输出刷新到屏幕上的各种方法。一般来说,输入和输出函数会将数据存储到缓冲区中,以提高程序的性能。因此,为了降低系统调用的次数,先将数据存储在缓冲区中,然后再显示到屏幕上,而不是一个字符一个字符地写到屏幕或文件上等。

本教程将讲解设置打印函数在每次调用时强行刷新数据而不是缓冲区的多种方法。

在 Python 中使用 print() 函数中的 flush 参数刷新打印输出

print() 函数的 flush 参数可以设置为 True,以阻止函数对输出数据进行缓冲,并强行刷新。如果将 flush 参数设置为 True,则 print() 函数将不会对数据进行缓冲以提高效率,而是在每次调用时不断地对数据进行刷新。

下面的示例代码演示了如何在 Python 中使 print() 函数强制刷新打印输出。

print("This is my string", flush=True)

在 Python 中使用 sys.stdout.flush() 方法刷新打印输出

另一种在打印数据时刷新输出数据的方法是使用 Python 的 sys 模块的 sys.stdout.flush()sys.stdout.flush() 会强制可以 print()sys.stdout.write() 的打印函数在每次调用时将输出数据写在屏幕或文件上,而不是缓冲。

下面的代码示例演示了如何使用 sys.stdout.flush() 方法来刷新打印的输出数据。

import sys

sys.stdout.write("This is my string")
sys.stdout.flush()

在 Python 中使用 -u 标志刷新打印输出

我们可以在运行 .py 文件时将 -u 标志传递给解释器,它将强制 stdinstdoutstderr 在执行 .py 文件时不缓冲和刷新数据。

下面的例子演示了如何在 Python 中使用 -u 标志来刷新打印输出。

$ python -u mycodefile.py

相关文章 - Python Print