要打开文件,Python 有一个名为 open()
的内置函数,用户可以通过它读取或写入文件,但是如果在任何情况下文件丢失或编译器无法访问,那么,我们 遇到 FileNotFoundError。 本文将介绍如何处理 Python 的文件异常。
Python open() 文件函数
此函数打开文件,加载所有内容,并将其作为文件对象返回。
一般语法:
open(filename, mode='r')
这个函数有两个参数。 一种是文件名或整个文件路径; 另一个是访问模式,它决定必须对文件执行什么操作。
有多种模式,包括r(只读)、w(只写)、a(append-only)、rb(Read-only in Binary format)等。
Python 打开文件异常
假设我们试图打开一个不存在的文件或者错误地输入了错误的文件路径,导致了 FileNotFound 异常。
示例代码:
file1 = open("myfile.txt",'r')
# Reading from file
print(file1.read())
file1.close()
输出:
FileNotFoundError Traceback (most recent call last)
C:\Users\LAIQSH~1\AppData\Local\Temp/ipykernel_4504/3544944463.py in <module>
----> 1 file1 = open("myfile.txt",'r')
2
3 # Reading from file
4 print(file1.read())
5
FileNotFoundError: [Errno 2] No such file or directory: 'myfile.txt'
我们看到 open 函数给出了一个错误,提示没有这样的文件或目录,因为编译器发现要打开的文件丢失了。
使用 try-except 处理 Python 读取文件时的异常
解决此丢失文件问题的最佳方法之一是代码含糊不清并包含一些错误。 我们将那部分代码包装在 try 块中。
try 块首先执行。 当找不到文件时,会引发异常。
try 块中的剩余代码被跳过,控件跳转到 except 块。 在 except 块中,我们提到了引发的错误类型。
异常在 except 块中处理。 如果 try 块中没有异常,except 子句将不会执行。
考虑以下示例。
try:
file1 = open("myfile.txt",'r')
# Reading from file
print(file1.read())
file1.close()
except FileNotFoundError:
print("FileNotFoundError successfully handled")
输出:
FileNotFoundError successfully handled
由于 try 块中有错误,except 块中的语句被打印在输出中。 因此,通过使用这个技巧,我们可以通过在输出中显示任何消息来处理代码中的异常,尽管收到错误消息。