Python 如何关闭已打开的文件
open()是Python中的一个内置函数,用于打开文件并返回文件对象。文件对象中的方法和属性可用于收集有关已打开文件的数据,也可用于修改该文件。
打开文件
这个函数需要两个参数。文件名和完整路径名首先列出,然后是访问模式。此函数将返回一个文件对象。
语法
下面是用于打开文件的语法:
open(filename, mode)
在这里,文件名和路径由一个字符串参数指定, mode 参数用于确定文件是用于读取还是写入。
注意 - 如果文件和Python脚本不在同一个目录中,则必须指定文件的完整路径。如果不提供模式,则默认为读取模式。
示例
以下是使用 r+ mode 打开文件的示例 –
# Opening a file
file = open("file.txt", "r+")
print ("Name of the file: ", file.name)
print ("Opening mode : ", file.mode)
输出
以下是上述代码的输出:
Name of the file: file.txt
Opening mode : r+
各种打开文件的模式
- ab - 以二进制格式打开文件,其他方面与a模式相同。
- ab+ - 以二进制格式打开文件,并在其他方面与a+模式类似。
- a+ - 以读取和添加的模式打开文件。如果文件已存在,文件指针位于文件末尾;否则,将创建一个新文件用于读取和写入。
- a - 以追加模式打开文件。如果文件存在,指针位于文件末尾;否则,将创建一个新文件用于写入。
- wb - 类似w模式,但以二进制格式打开文件。
- wb+ - 以二进制格式打开文件,与w+模式不同。
- w+ - 以只读和只写的模式打开文件;其他方面与w模式相似。
- w - 通过打开文件启用写入。如果文件已存在,则替换现有文件并创建一个新文件。
- rb - 以二进制模式打开文件,其他方面与r模式相同。
- rb+ - 类似于r+模式,只是以二进制模式打开文件。
- r+ - 打开文件以便读取和写入。文件的起点是指针所在位置。
- r - 使用只读模式打开文件。文件的指针位于文件的开头。此外,这是默认模式。
- x - 以独占创建文件。如果文件已存在,则操作失败。
- t - 以纯文本模式打开(默认)。
- b - 以二进制模式打开。
- + - 通过打开文件进行更新(读取和写入)。
关闭文件
您可以直接使用文件对象调用close函数,因为它不需要任何参数。它可以被多次调用,但如果对已关闭的文件进行任何操作,则会引发”ValueError”异常。
示例
以下是关闭文件的示例 –
# Opening a file
file = open("file.txt", "r+")
# closing the file
file.close()
注意 − 重要的是要记住,每当完成一个文件的任务并且没有必要保持它开启时,始终明确关闭每个打开的文件,因为程序一次只能打开一定数量的文件。如果超过这个限制,没有安全的恢复方式,因此软件可能会崩溃。
Close()函数不完全安全。如果在我们尝试执行文件操作时抛出异常,函数将终止而不关闭文件。使用try…finally块更可取。
示例
以下是一个示例,说明即使生成异常并中断程序执行,确保文件将被正确关闭―
try:
file = open("file.txt", "r+")
finally:
file.close()
注意 − 在Python中处理文件操作最安全的方法是使用”with”语句,因为它确保文件在退出其中的块时关闭。
示例
在下面的示例中,您不需要显式调用close()方法。这个过程是内部的 −
with open("file.txt", "r+") as file:
# perform some file operations
极客笔记