Python打开文件异常处理
要打开文件,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 块中的语句被打印在输出中。 因此,通过使用这个技巧,我们可以通过在输出中显示任何消息来处理代码中的异常,尽管收到错误消息。
相关文章
Python 绘图 CSV
发布时间:2023/06/13 浏览次数:67 分类:Python
-
CSV 代表逗号分隔值,一种存储结构化数据的流行格式。 CSV 文件包含具有行和列的表格形式的数据。我们经常需要可视化存储在 CSV 文件中的数据。 为此,Python 提供了不同类型的数据可视化图
Python 绘制决策边界
发布时间:2023/06/13 浏览次数:52 分类:Python
-
为此,我们将使用 Sklearn 库提供的内置预处理数据(无缺失数据或异常值)数据集包来绘制数据的决策边界。 然后我们将使用 Matplotlib 的库来绘制决策边界。
Python 中的 Soundex
发布时间:2023/06/13 浏览次数:184 分类:Python
-
Python 的 soundex 函数是将文本字符串转换为 Soundex 代码的函数。 它有助于在数据库中索引名称或查找相似名称。名字的 Soundex 代码是基于它的发音,而不是它的拼写。 它是比较发音不同但拼写准
Python 读取 Outlook 电子邮件
发布时间:2023/06/13 浏览次数:170 分类:Python
-
本文将讨论如何借助 win32com.client 模块从 outlook 应用程序读取电子邮件。 我们还学习了如何在 Python 中过滤具有不同属性的电子邮件。使用 win32com.client 模块从 Outlook 应用程序读取电子邮件
Python 多处理日志记录
发布时间:2023/06/13 浏览次数:150 分类:Python
-
本文将讨论 multiprocessing 的概念。 在此之后,我们将讨论 Python 中的多处理和使用 Python 代码进行多处理的日志处理。
Python multiprocessing 共享对象
发布时间:2023/06/13 浏览次数:81 分类:Python
-
在 Python 中,共享内存多处理由连接多个处理器组成,但这些处理器必须能够直接访问系统的主内存。 这将允许所有连接的处理器访问它们使用或创建的其他处理器数据。
在 Python Lambda 中使用 Await
发布时间:2023/06/13 浏览次数:143 分类:Python
-
在 Python 中,要实现异步编程,我们可以将 async/await 特性与函数一起使用,但我们使用 lambda 函数来实现。 本文将讨论在 Python lambda 函数中使用 await 的可能性。Python Lamda 中没有async/await lambda
Python Lambda 闭包
发布时间:2023/06/13 浏览次数:141 分类:Python
-
本篇文章将介绍在 Python 中使用 lambda 函数和闭包。在 Python 中使用 Lambda 函数的语法
Python 中的最长公共子序列
发布时间:2023/06/02 浏览次数:147 分类:Python
-
本篇文章讲介绍在 Python 中查找两个序列之间最长公共子序列的长度。使用 Naive 方法在 Python 中查找最长公共子序列;使用动态规划在 Python 中查找最长公共子序列