Python中的文件操作和异常处理

在Python中,文件操作是一项非常常见的任务。你可以使用Python的内置函数来打开、读取、写入和关闭文件。同时,为了确保文件操作的稳定性和可靠性,你还需要学习如何在Python中处理异常。

文件操作

  1. 打开文件

使用open()函数可以打开文件。这个函数需要两个参数:文件名和模式。模式可以是'r'(只读)、'w'(写入,如果文件已存在则会被覆盖)、'a'(追加,如果文件已存在则会在文件末尾添加内容)或'x'(创建新文件用于写入,如果文件已存在则会引发异常)。

ini 复制代码
python复制代码
	file = open('example.txt', 'r')
  1. 读取文件

使用read()方法可以从文件中读取内容。

ini 复制代码
python复制代码
	content = file.read()
  1. 写入文件

使用write()方法可以向文件中写入内容。

lua 复制代码
python复制代码
	file = open('example.txt', 'w')  

	file.write('Hello, world!')
  1. 关闭文件

使用close()方法可以关闭文件。在关闭文件之后,你就不能再对其进行读写操作了。

go 复制代码
python复制代码
	file.close()

异常处理

在文件操作中,可能会遇到各种异常,例如文件不存在、没有读写权限等。Python提供了异常处理机制,可以在遇到这些问题时进行处理。

python 复制代码
python复制代码
	try:  

	    file = open('example.txt', 'r')  

	    content = file.read()  

	    print(content)  

	except FileNotFoundError:  

	    print('文件不存在')  

	except PermissionError:  

	    print('没有读写权限')  

	finally:  

	    if file:  

	        file.close()

在这个例子中,我们使用了try/except语句来捕获可能发生的异常。如果open()函数引发了FileNotFoundErrorPermissionError异常,那么对应的except块就会被执行。finally块中的代码无论是否发生异常都会被执行,所以通常用来清理资源,例如关闭文件。

你也可以使用with语句来自动处理文件的打开和关闭,这样就不需要显式调用close()方法了。

python 复制代码
python复制代码
	try:  

	    with open('example.txt', 'r') as file:  

	        content = file.read()  

	        print(content)  

	except FileNotFoundError:  

	    print('文件不存在')  

	except PermissionError:  

	    print('没有读写权限')

在这个例子中,with语句会在代码块执行完毕后自动关闭文件,无论是否发生异常。这使得代码更加简洁,也减少了出错的可能性。

相关推荐
晚霞的不甘1 分钟前
CANN 编译器深度解析:UB、L1 与 Global Memory 的协同调度机制
java·后端·spring·架构·音视频
喵叔哟12 分钟前
06-ASPNETCore-WebAPI开发
服务器·后端·c#
Charlie_lll1 小时前
力扣解题-移动零
后端·算法·leetcode
打工的小王2 小时前
Spring Boot(三)Spring Boot整合SpringMVC
java·spring boot·后端
80530单词突击赢3 小时前
JavaWeb进阶:SpringBoot核心与Bean管理
java·spring boot·后端
爬山算法3 小时前
Hibernate(87)如何在安全测试中使用Hibernate?
java·后端·hibernate
WeiXiao_Hyy4 小时前
成为 Top 1% 的工程师
java·开发语言·javascript·经验分享·后端
苏渡苇4 小时前
优雅应对异常,从“try-catch堆砌”到“设计驱动”
java·后端·设计模式·学习方法·责任链模式
long3164 小时前
Aho-Corasick 模式搜索算法
java·数据结构·spring boot·后端·算法·排序算法
rannn_1115 小时前
【苍穹外卖|Day4】套餐页面开发(新增套餐、分页查询、删除套餐、修改套餐、起售停售)
java·spring boot·后端·学习