当前位置: 首页 > news >正文

第四天 文件操作与异常处理

在Python中,文件操作是处理输入输出的基本操作之一,而异常处理则用于管理潜在的错误情况,确保程序的健壮性和稳定性。下面将介绍Python中的文件操作和异常处理的基本用法。

文件操作

打开文件

使用内置的 open() 函数可以打开一个文件,并返回一个文件对象。

file_path = 'example.txt'# 以只读模式打开文件
file = open(file_path, 'r')# 以写入模式打开文件(会覆盖已有内容)
file = open(file_path, 'w')# 以追加模式打开文件
file = open(file_path, 'a')# 以二进制模式打开文件(适用于非文本文件)
file = open(file_path, 'rb')
读取文件

有多种方法可以从文件中读取数据:

# 读取整个文件内容
content = file.read()# 读取一行
line = file.readline()# 读取所有行并返回一个列表
lines = file.readlines()
写入文件

使用 write() 方法可以向文件中写入数据:

# 写入字符串到文件
file.write('Hello, world!\n')# 写入多行
file.writelines(['First line\n', 'Second line\n'])
关闭文件

操作完成后,务必关闭文件以释放资源:

file.close()

异常处理

Python 使用 tryexceptfinally 关键字来处理异常。

基本用法
try:# 可能会引发异常的代码result = 10 / 0
except ZeroDivisionError as e:# 处理特定类型的异常print(f"Error: {e}")
except Exception as e:# 处理其他所有异常类型print(f"An unexpected error occurred: {e}")
else:# 如果没有异常发生,执行此块代码print("Operation succeeded.")
finally:# 无论是否发生异常,都会执行此块代码print("This block is always executed.")
文件操作中的异常处理

将文件操作放在 try 块中,可以优雅地处理潜在的异常,如文件不存在、权限不足等:

file_path = 'example.txt'try:file = open(file_path, 'r')content = file.read()print(content)
except FileNotFoundError:print(f"The file {file_path} does not exist.")
except PermissionError:print(f"You do not have permission to access {file_path}.")
except Exception as e:print(f"An error occurred: {e}")
finally:try:file.close()except NameError:# 如果文件未成功打开,则忽略关闭操作pass

使用 with 语句管理文件

使用 with 语句可以自动管理文件的打开和关闭,使代码更加简洁和安全:

file_path = 'example.txt'try:with open(file_path, 'r') as file:content = file.read()print(content)
except FileNotFoundError:print(f"The file {file_path} does not exist.")
except PermissionError:print(f"You do not have permission to access {file_path}.")
except Exception as e:print(f"An error occurred: {e}")

总结

  1. 文件操作:使用 open() 打开文件,read()readline()readlines() 读取文件内容,write()writelines() 写入文件内容,最后使用 close() 关闭文件。
  2. 异常处理:使用 tryexceptfinally 关键字捕获和处理异常,确保程序的健壮性。
  3. 使用 with 语句:自动管理文件的打开和关闭,简化代码并减少资源泄漏的风险。

通过合理使用文件操作和异常处理,可以编写更加健壮和可靠的Python程序。

http://www.lryc.cn/news/467124.html

相关文章:

  • 【密码分析学 笔记】ch3 3.1 差分分析
  • Go:strings包的基本使用
  • uniapp,获取头部高度
  • 开发面试题-更新中...
  • 【Jmeter】jmeter指定jdk版本启动
  • 数据处理利器:图片识别转Excel表格让数据录入变简单
  • 【WPF】中Binding的应用
  • 华为OD机试2024年真题(基站维修工程师)
  • 在MySQL中为啥引入批量键访问(Batch Key Access, BKA)
  • 912.排序数组(归并排序)
  • 使用 cmake 在 x86 系统中为 arm 系统交叉编译程序
  • 软考(网工)——网络规划设计
  • 即插即用特征融合模块,即用即涨点!
  • 蓝桥算法双周赛 第 19 场 小白入门赛
  • Cursor零基础小白教程系列「进阶」 - Cursor 智能代码补全详解(Tab)
  • 数据结构《顺序表》
  • 视频分享网站毕业设计基于SpringBootSSM框架
  • Python多进程学习与使用:全面指南
  • HTTP Proxy环境下部署Microsoft Entra Connect和Health Agents
  • 基于单片机的 OLED 显示终端设计分析与研究
  • 基于Multisim压力报警器电路设计(含仿真和报告)
  • 基于Springboot的在线考试与学习交流平台的设计与实现
  • “避免序列化灾难:掌握实现 Serializable 的真相!(二)”
  • 中国工商银行智能运维体系建设
  • 如何将logism电路转为verilog(一)
  • 【论文笔记】X-Former: Unifying Contrastive and Reconstruction Learning for MLLMs
  • 带权并查集注意事项
  • No.18 笔记 | XXE(XML 外部实体注入)漏洞原理、分类、利用及防御整理
  • Discuz | 全站多国语言翻译和繁体本地转换插件 特色与介绍
  • 【毕业设计】基于SpringBoot的网上商城系统