Python flush()方法

Python flush()方法

使用Python进行文件处理时,可以使用flush方法清空内部缓冲区。在使用close函数关闭文件后,默认情况下文件会自动刷新。flush方法主要用于在不关闭文件的情况下清空缓冲区。

示例1

在这个例子中,我们使用flush方法清空文件的内部缓冲区,然后关闭文件。

步骤

步骤1: 以读取模式打开文件。

步骤2: 使用flush属性清空输入缓冲区。

步骤3: 读取文件的内容。

步骤4: 打印文件的内容。

步骤5: 关闭文件。

示例

#open the file 'hello.txt' in read mode
fo= open("hello.txt", "r")
#flush the buffered content to ensure its written to the file
fo.flush()
#read the contents of the file
fileContent = fo.read()

#print the file contents

print(fileContent)
#close the file
fo.close()

输出

flush之前

Python flush()方法

flush之后

Python flush()方法

因此我们推断文件的内容保持不变。

示例2

下面的例子演示了在写入文件并关闭后,在“w”模式下刷新文件的内部缓冲区的用法。内容再次打印到终端上。

步骤

步骤1 : 以写模式打开文件”greet.txt”。

步骤2 : 向文件中写入内容。

步骤3 : 关闭文件。

步骤4 : 读取文件的内容。

步骤5 : 打印内容。

步骤6 : 刷新内部缓冲区。

步骤7 : 关闭文件。

示例

#open the file "greet.txt" in write mode
fo = open("greet.txt", "w")
#write to the file
fo.write("hello tutorials Point Readers!")
#close the file
fo.close()


#open the file "greet.txt" in read mode
fo = open("greet.txt", "r")
#read the contents of the file
fileContent = fo.read()

#print the contents read
print("\nBefore flushing: ", fileContent)

#flush the buffered content to ensure its written to the file
fo.flush()
#read the contents of the file after flushing
fileContent = fo.read()

#print the contents of the file
print("\nAfter flushing:", fileContent)
#close the file
fo.close()

输出

flush前:

Python flush()方法

flush后:

Python flush()方法

文件以写模式打开,所以写入的内容仍在内部缓冲区中。刷新时,输入缓冲区被清空。因此,刷新后没有打印任何内容。

示例3

下面的示例演示了在csv文件中使用flush()的用法,其中在关闭之前清空了文件的内部缓冲区。内容将被打印到终端上。

步骤

步骤1 :以附加模式打开文件”data.csv”。

步骤2 :向文件中写入内容。

步骤3 :以读取二进制模式打开文件,并使用另一个文件指针变量myfile。

步骤4 :读取文件的内容。

步骤5 :打印csv文件的现有内容。

步骤6 :向文件中写入另一行。

步骤7 :刷新文件。

示例

#import csv
import csv
#open the file "data1.csv" in append mode
fp = open("data1.csv", "a")

#create a csv.writer object
wp = csv.writer(fp)

#open the file "data1.csv" in read and write mode
myfile = open("data1.csv", "r+")
#create a csv.reader object
myreader = csv.reader(myfile)

#iterate over each row in the file using the reader object
for i in myreader:
   print(i)

#write a new row to the file using the writer object
wp.writerow(["999", "2023-05-23"])
#flush any buffered data to ensure it is written to the file
fp.flush()
#print the contents after flushing
print("after flushing")

#move the file pointer to the beginning of the file
myfile.seek(0)
for j in myreader:
   print(j)

输出

flush之前

Python flush()方法

flush之后

Python flush()方法

CSV文件被读取并打印出数据。然后一行数值被写入文件并使用flush方法。输出结果显示,在冲洗后被写入文件的数值被擦除,而现有内容保持不变。

结论

操作系统缓冲区用于向文件写入数据。这些缓冲区存储要写入的数据,并在将内容写入文件后将其清除。flush()属性允许我们清除这些缓冲区中的内容。这样我们就可以撤消关闭文件之前执行的操作。内容被冲洗,文件的保存内容被读取。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程