📅  最后修改于: 2023-12-03 15:34:21.592000             🧑  作者: Mango
在Python中,文件的读写是常见的操作之一。w+
和r+
是两个常用的文件打开模式,不同的模式有不同的作用和使用场景。
w+
模式w+
模式是可写可读模式,表示可读写打开文件。如果文件不存在,则会创建一个新的文件。如果文件已经存在,则会将文件清空,并在文件开头写入所需的内容。如果想要在文件中追加内容,则需要使用a
模式。
举个例子,假设当前目录下不存在test.txt
文件,那么使用w+
模式打开该文件后,可以向其中写入数据,也可以从其中读取数据。
with open('test.txt', 'w+') as f:
f.write('Hello, world!')
f.seek(0) # 将文件指针移动到文件开头
print(f.read()) # 输出:Hello, world!
在上面的代码中,f.seek(0)
表示将文件指针移动到文件开头,这样才能从文件中读取数据。f.read()
表示读取文件的全部内容,并将其打印出来。由于使用w+
模式打开文件会清空文件,所以我们需要先将数据写入文件,然后再读取出来进行验证。
r+
模式r+
模式也是可读可写模式,表示可读写打开文件。但与w+
不同的是,如果文件不存在,r+
模式会抛出FileNotFoundError
异常。
当文件存在时,r+
模式会将文件指针置于文件开头。这意味着,如果需要在文件中追加内容,需要先将文件指针移动到文件末尾。另外,如果使用r+
模式进行写入文件操作,会覆盖掉原有的内容。
下面是使用r+
模式进行文件读写的示例代码:
with open('test.txt', 'r+') as f:
print(f.read()) # 输出:Hello, world!
f.write('\nThis is a new line.')
f.seek(0)
print(f.read()) # 输出:Hello, world!
# This is a new line.
在上述代码中,我们首先使用f.read()
方法读取文件的全部内容,并将其打印出来。然后,我们使用f.write()
方法向文件中写入一条新的记录,并使用f.seek(0)
方法将文件指针重新置于文件开头。最后,我们再次使用f.read()
方法读取文件的全部内容,并将其打印出来。可以看到,新的记录已经被追加到文件的末尾。
在Python中,w+
和r+
是两种常用的文件打开模式。w+
模式表示可写可读模式,可以向文件中写入内容,并从文件中读取内容。如果文件不存在,则会创建一个新的文件。如果文件已经存在,则会清空文件并在文件开头写入所需的内容。r+
模式也表示可读可写模式,但与w+
不同的是,如果文件不存在,r+
模式会抛出FileNotFoundError
异常。此外,r+
模式会将文件指针置于文件开头,如果需要在文件中追加内容,需要先将文件指针移动到文件末尾。如果使用r+
模式进行写入操作,则会覆盖掉原有的内容。