如何在 Python 中刷新内部缓冲区?
由运行时、库和使用的编程语言创建的内部缓冲区的目的是通过防止每次写操作进行系统调用来加速操作。相反,在写入文件对象时,写入其缓冲区,当缓冲区满时,使用系统函数将数据写入到实际文件中。
阅读更多:Python 教程
语法
以下是 flush() 函数的语法 −
文件名.flush()
它不接受任何参数。
该方法不返回任何内容;其返回类型为
示例-1
下面程序中的 flush() 方法只是清除文件的内部缓冲区;文件的实际内容不受影响。因此,可以读取和查看文件中的内容 −
# 创建文件
file = open("flush.txt", "w")
# 在文件中写入文本
file.write("Tutorials Point")
# 刷新内部缓冲区
file.flush()
# 关闭文件
file.close()
# 读取并写入文件中存在的内容
file = open("flush.txt", "r+")
print("文件中的内容为 file.flush()")
print(file.read())
file.close()
输出
以下是上述代码的输出 −
文件中的内容为 file.flush()
Tutorials Point
示例-2
在下面的程序中,我们创建了一个文本文件,写入一些内容,然后关闭了文件。在读取并显示文件内容之后,执行 flush() 函数,清除文件的输入缓冲区,以使文件对象读取为空,并且文件内容变量保持为空。因此,在 flush() 过程之后不会显示任何内容 −
# 创建文件
file = open("flush.txt", "w+")
# 向文件中写入内容
file.write("教程点 file.flush() 已执行。内容未被刷新。")
# 关闭文件
file.close()
# 打开文件以读取其中的内容
file = open("flush.txt", "r")
# 读取执行 flush() 之前文件中已有的内容
Content = file.read()
# 显示内容
print("\n执行 flush() 前的内容:\n", Content)
# 清空输入缓冲区
file.flush()
# 读取执行 flush() 之后的内容,但读取不到任何内容,因为内部缓冲区已被清空
Content = file.read()
# 现在显示内容
print("\n执行 flush() 后的内容:\n", Content)
# 关闭文件
file.close()
输出
以下是代码的输出结果。
执行 flush() 前的内容:
教程点 file.flush() 已执行。内容未被刷新。
执行 flush() 后的内容:
极客教程