如何在 Python 中关闭已打开的文件?
programmingpythonserver side programming更新于 2023/12/11 9:59:00
Open() 是 Python 中的内置函数,用于打开文件并返回文件对象。文件对象中的方法和属性可用于收集有关您打开的文件的数据。它们还可用于修改所提及的文件。
打开文件
此函数需要两个参数。首先列出文件名和完整路径,然后列出访问模式。此函数返回一个文件对象。
语法
以下是用于打开文件的语法:
open(filename, mode)
此处,filename及其路径由字符串参数指定,mode参数用于确定文件是否用于读取或写入。
注意 − 如果文件和 Python 脚本不在同一目录中,则必须指定文件的完整路径。如果您不提供模式,则访问模式默认为读取模式。
示例
以下是使用 r+ 模式 打开文件的示例 −
# 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+ − 以只读和只写模式打开文件; rest 与 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