当我们需要在Python程序中读写文件时,with open语句是一个非常有用的工具。使用with open语句,可以保证文件对象被正确关闭,从而避免了可能出现的资源泄漏问题。
下面是with open语句的基本语法:
with open(file_path, mode, ...) as file_object:
# Do something with the file_object
其中,file_path表示要打开的文件的路径;mode表示文件的打开模式,可以是’r’, ‘w’, ‘x’, ‘a’等模式。
with open语句会自动关掉文件对象,就算程序出现异常或错误的情况,文件也能正确关闭。
下面分别介绍一下常见的文件打开模式以及如何使用with open语句进行读取和写入文件。
文件打开模式
读文件模式
- ‘r’:以只读方式打开文件,如果文件不存在会抛出FileNotFoundError错误
- ‘r+’:以读写方式打开文件,如果文件不存在会抛出FileNotFoundError错误
写文件模式
- ‘w’:以写入方式打开文件,如果文件不存在则新建文件,如果文件已存在则覆盖原文件
- ‘w+’:以读写方式打开文件,如果文件不存在则新建文件,如果文件已存在则覆盖原文件
追加文件模式
- ‘a’:以追加方式打开文件,如果文件不存在则新建文件,如果文件已存在则在文件末尾追加内容
- ‘a+’:以读写方式打开文件,如果文件不存在则新建文件,如果文件已存在则在文件末尾追加内容
读取文件示例
下面是一个使用with open语句以只读方式打开文件并读取其中内容的示例代码:
with open('text.txt', 'r') as file_object:
contents = file_object.read()
print(contents)
- 在这个示例中,我们打开了一个名为text.txt的文件,并将它的内容读取到了变量contents中。
- 变量file_object是一个文件对象,代表了text.txt文件。
- read()方法是对文件的读取方法,将文件的所有内容读出并保存在变量contents中。
- with open语句的作用是保证文件对象被正确关闭,我们无需再手动关闭该文件,即可避免潜在的资源泄漏问题。
写入文件示例
下面是一个使用with open语句以写入方式打开文件并写入内容的示例代码:
with open('new_file.txt', 'w') as file_object:
file_object.write('Hello, world!')
- 在这个示例中,我们打开了一个名为new_file.txt的文件,并向其中写入了一行文本“Hello, world!”。
- 这里使用了write()方法,它将传入的文本写入到文件对象中。
- 如果文件已存在,则文件中原有的内容将被覆盖;如果文件不存在,则会新建该文件并将内容写入其中。
以上就是使用with open语句对文件进行读写的基本方法。通过with open语句,我们可以方便地对文件进行读写操作,并确保文件对象在操作完成后被正确关闭。