大学Python程序设计《文件与异常处理》复习课件_第1页
大学Python程序设计《文件与异常处理》复习课件_第2页
大学Python程序设计《文件与异常处理》复习课件_第3页
大学Python程序设计《文件与异常处理》复习课件_第4页
大学Python程序设计《文件与异常处理》复习课件_第5页
已阅读5页,还剩17页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

复习课件大学Python程序设计《文件与异常处理》复习课件文件读写·异常处理·with语句复习时间2026年复习导览01文件读写基础open函数与r/w/a模式核心区别02文件读写进阶读取方法、游标控制与with语句03异常处理机制异常类型与try-except捕获流程04异常处理进阶else、finally、raise与自定义异常05综合实战与易错点融合应用,规避高频失分陷阱章节过渡01文件读写基础打开文件是一切操作的起点掌握open函数与三大核心模式文件操作三步走与open函数参数含义补充file_path文件路径可为相对路径或绝对路径mode打开模式决定读、写、追加encoding编码格式处理中文建议

utf-8一切操作始于

open()

函数,返回一个文件对象;操作完成后务必

close()

释放资源,否则可能数据丢失或资源耗尽。推荐写法:使用

with语句自动管理关闭(后续详解)文件操作遵循固定三步:打开open()→读取写入→关闭close()1打开

open()一切操作始于open()函数,返回一个文件对象2读取写入对文件对象执行读取或写入操作3关闭

close()操作完成后务必close()释放资源固定三步三大核心模式rwa辨析模式含义文件不存在时核心特点r只读(默认)报错只能读,不能写w只写自动创建清空原内容

再写入a追加自动创建末尾添加,不覆盖最关键区别:w会清空原文件,a不会,误用w易导致重要数据被覆盖r模式文件不存在直接抛出

FileNotFoundError工作场景中

99%

的情况只用

r、w、a

三个模式扩展模式与二进制读写在基础模式后加

+

表示可读可写,加

b

表示二进制模式扩展模式r+可读可写,文件必须存在w+可读可写,会清空原内容a+可读可写,指针在末尾x独占创建,文件已存在则报错二进制读写要点处理图片、音视频等非文本文件需用

rb、wb

二进制模式,此时

不传encoding文本模式默认,t可省略文本与二进制模式

不能混用,否则报

TypeError路径易错点Windows路径反斜杠易被当转义字符,建议用正斜杠或原始字符串r'路径'章节过渡02文件读写进阶读得对,更要关得稳读取方法、游标控制与with语句四种文件读取方法read()一次读全部为字符串readline()每次读一行,行末自带换行符readlines()一次读所有行,返回列表文件读取方法对比方法特点适用场景read()一次读全部为字符串小文件readline()每次读一行,行末自带换行符大文件逐行readlines()一次读所有行,返回列表批量处理forlineinf内存友好,推荐大文件处理内存友好度高大文件处理,优先使用

for循环逐行读取,内存友好且代码简洁写入方法与游标控制写入不自动换行,游标决定读写位置写入方法write()写入字符串,需自行添加

\nwritelines()写入列表多行,同样需自行添加换行符encoding='utf-8'写入中文务必指定,否则易产生乱码游标控制seek(offset,whence)移动游标,0文件头

1当前位置

2文件尾tell()返回当前游标位置读取小贴士读取时用

strip()

去除行尾换行符,是常见清理操作with语句与上下文管理器withopen(...)asf本质等于自动化的try-finally手动管理手动

close()·异常易遗漏·代码冗长with语句自动关闭·始终释放·代码简洁手动管理易出错手动close()需显式关闭,遗漏即资源泄漏异常易遗漏资源未释放,异常路径常被跳过代码冗长try-finally嵌套,结构繁琐难维护with语句推荐自动关闭无需手动close(),退出即自动释放始终释放异常也保证清理,路径完整覆盖代码简洁单行结构清晰,可读性大幅提升章节过渡03异常处理机制让程序在错误中优雅前行异常类型与try-except捕获流程语法错误与异常的区别对比项语法错误异常发现阶段解析阶段运行阶段程序状态未开始运行已运行出错典型案例少写冒号、缩进错误1/0、访问越界错误程度异常指语法正确、可运行,但执行过程中出错;不加处理时异常会导致程序直接崩溃退出;异常处理的目的:不是消灭错误,而是在出错时提供合理方案程序错误主要分两类:语法错误

与

异常常见异常类型与层次结构所有异常继承

BaseException,业务异常归入

Exception

分支常见业务异常6项ValueErrorint("abc")值错误TypeError1+"2"类型错误ZeroDivisionError1/0除零错误FileNotFoundErroropen不存在文件IndexError列表索引越界KeyError字典键不存在异常继承层次BaseException下含

SystemExit、KeyboardInterrupt

分支Exception其余常见业务异常都归属

Exception

分支Exception子类含

ArithmeticError、LookupError、OSError、ValueError

等try-except捕获与执行流程尝试执行可能出错的代码,捕获处理异常,防止程序崩溃用

try-except

包裹可疑代码,吸收错误而非任其崩溃01try尝试执行可能出错的代码02except捕获并处理指定异常异常发生时跳转到匹配except程序不崩溃继续执行03else无异常时执行04finally无论是否异常都执行多异常捕获与捕获所有异常精准捕获优于笼统捕获合并捕获写法3项多异常合并一个except可同时捕获多种异常,用元组列出:except(ValueError,ZeroDivisionError)ase异常别名ase

给异常起别名,可调用异常信息类型名称用

type(e).__name__

可输出错误类型名称兜底捕获与易错提醒4项兜底写法exceptExceptionase

可捕获几乎所有运行时异常,常用作兜底作用域共享try和except块共享同一作用域,try中变量可在except访问未定义风险但try中途异常时,后续变量可能处于未定义状态禁止裸写禁止裸写

except:,它会捕获包括KeyboardInterrupt的所有异常章节过渡04异常处理进阶完整的异常处理才够健壮else、finally、raise与自定义异常else与finally子句完整的异常处理才够健壮高频考点:finally中的代码即使

try或except中return

也会执行不要在finally中抛新异常否则会掩盖原有异常多层嵌套时理清传递机制内层未捕获异常逐层向上传递给外层raise、assert与自定义异常三类进阶用法,各司其职raise

用于参数检查,assert

用于调试,自定义异常

贴合业务01raise主动抛异常参数检查与逻辑约束参数检查:raiseValueError("除数不能为零")重新抛出:不带参数可保留详细信息供上层处理02assert断言内部调试利器内部调试:条件为假触发

AssertionError示例:assertx>0,"x必须为正数"03自定义异常贴合业务场景继承

Exception类实现,贴合业务场景异常链:raise...from...

保留异常上下文章节过渡05综合实战与易错点融会贯通,避开失分陷阱文件与异常融合应用及高频易错点文件与异常融合实战文件操作与异常处理的完整组合是综合题高频考点文件读写与异常处理是综合题的必考组合,掌握

with

与

try-except

即可稳拿高分4项with管理资源自动关闭文件,无需手动

close()try-except捕获异常处理可能出现的

错误,避免程序崩溃else成功路径无异常时的

业务逻辑finally保证清理无论是否异常都

执行收尾操作高频易错点总结模式辨清、资源关稳、异常抓准七项易错点模式混淆误用

w

覆盖重要文件,追加应用

a忘记关闭不用

with

又漏写

close(),导致文件句柄泄漏笼统捕获滥用

exceptException,掩盖真正错误、难以定位裸写except直接

pass,异常信息全无

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论