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语句会在代码块执行完毕后自动关闭文件,无论是否发生异常。这使得代码更加简洁,也减少了出错的可能性。

相关推荐
hyunbar77710 分钟前
NOT IN 的 NULL 陷阱:一次 UNION 数据"神秘消失"
后端
basketball61618 分钟前
Go语言从入门到进阶:8. 接口
开发语言·后端·golang
明月_清风22 分钟前
深入 Go 并发编程:从 Goroutine 到 Channel 的系统性避坑指南
后端·go
雪隐34 分钟前
AI股票小助手04-miniQMT数据采集
人工智能·后端
苏三说技术35 分钟前
MybatisPlus Pro 来了,CURD开发效率直接拉满!
后端
小江的记录本36 分钟前
【JVM虚拟机】类加载机制:类加载器、双亲委派模型、好处、破坏双亲委派的场景(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
李少兄37 分钟前
Spring 对象创建范式:依赖注入与直接实例化的边界抉择
java·后端·spring
二月龙1 小时前
SpringBoot 简化开发的核心原理:告别繁琐配置
后端
Java内核笔记1 小时前
Spring Security 过滤器链全景图:从 FilterOrderRegistration 到实战配置
后端
文心快码BaiduComate1 小时前
Comate搭载MiniMax M3:支持超长百万上下文
前端·人工智能·后端