Python-文件与操作异常处理
📅 2026/7/22 11:36:06
👁️ 次浏览
一、文件基础1.1 文件分类类型说明扩展名纯文本文件人类可读.txt、.py、.csv、.json二进制文件字节流.jpg、.mp3、.exe、.pdf1.2 文件路径绝对路径从盘符开始如C:\Users\xxx\file.txt相对路径从当前目录开始如./data/file.txt二、文件的打开与关闭2.1 open() 函数f open(test.txt, moder, encodingutf-8) content f.read() f.close() # 必须关闭mode 常用值mode含义r只读默认w写入覆盖文件不存在则创建a追加末尾添加rb/wb二进制读写2.2 with 语句强烈推荐with open(test.txt, r, encodingutf-8) as f: content f.read() # 离开 with 块文件自动关闭即使发生异常也会关闭三、文件读写3.1 读取with open(test.txt, r, encodingutf-8) as f: # 一次读全部 content f.read() # 按行读返回列表 f.seek(0) lines f.readlines() # 逐行迭代推荐大文件友好 f.seek(0) for line in f: print(line.strip()) # strip 去掉换行符3.2 写入with open(output.txt, w, encodingutf-8) as f: f.write(第一行\n) f.writelines([第二行\n, 第三行\n])3.3 追加with open(log.txt, a, encodingutf-8) as f: f.write(新的日志记录\n)3.4 文件拷贝def copy_file(src, dst): with open(src, rb) as f_in, open(dst, wb) as f_out: while True: data f_in.read(4096) # 每次读 4KB if not data: break f_out.write(data)四、os 模块常用操作import os print(os.getcwd()) # 当前工作目录 print(os.path.exists(test.txt)) # 文件是否存在 print(os.path.join(dir, file.txt)) # 拼接路径 os.mkdir(new_dir) # 创建目录 print(os.listdir(.)) # 列出当前目录 # 递归遍历 for root, dirs, files in os.walk(.): for name in files: print(os.path.join(root, name))五、异常处理5.1 两种错误类型说明例子语法错误代码不符合 Python 语法忘记冒号、缩进错误异常语法正确运行时报错除零、文件不存在、类型错误5.2 常见异常异常原因ZeroDivisionError除以零FileNotFoundError文件不存在ValueError值不合法如int(abc)TypeError类型错误KeyError字典键不存在IndexError索引越界5.3 try-except-else-finallytry: num int(input(输入数字)) result 10 / num except ValueError: print(输入不是有效数字) except ZeroDivisionError: print(不能除以零) except Exception as e: print(f未知错误{e}) else: print(f结果{result}) # 无异常时执行 finally: print(无论是否异常都执行)5.4 抛出异常 raisedef set_age(age): if age 0 or age 150: raise ValueError(f年龄 {age} 不合法) return age5.5 assert 断言def divide(a, b): assert b ! 0, 除数不能为零 return a / b5.6 自定义异常class ScoreError(Exception): 成绩异常 pass def validate_score(score): if not 0 score 100: raise ScoreError(f成绩 {score} 不在 0-100 范围) return score5.7 异常的传递异常会向上传递直到被 except 捕获或导致程序崩溃。六、with 关键字原理with基于上下文管理器协议__enter__/__exit__确保资源释放。文件对象就是上下文管理器进入 with 时打开离开时自动 close。七、重点易错点读写文件必须指定encodingutf-8Windows 默认 gbk 易乱码用 with 代替手动 closeexcept 顺序从具体到通用w模式会覆盖原文件追加用a八、练习题基础题1.读取文本文件统计行数、单词数、字符数。2.将用户输入追加写入diary.txt每行带时间戳。3.安全地将字符串转为 int失败返回 0。4.用 os.walk 列出当前目录所有 .py 文件。进阶题5.实现文件拷贝支持大文件捕获 FileNotFoundError。6.自定义 ScoreError验证成绩 0100。参考答案点击展开参考答案from datetime import datetime import os def file_stats(path): with open(path, r, encodingutf-8) as f: content f.read() return len(content.splitlines()), len(content.split()), len(content) def write_diary(text): with open(diary.txt, a, encodingutf-8) as f: f.write(f[{datetime.now()}] {text}\n) def safe_int(s, default0): try: return int(s) except ValueError: return default class ScoreError(Exception): pass def validate_score(score): if not 0 score 100: raise ScoreError(f成绩 {score} 不合法) return score
1. TM4C129LNCZAD:一款为复杂嵌入式系统而生的“瑞士军刀”在嵌入式开发领域,尤其是工业控制、网络网关和需要复杂人机交互的应用中,选型一款合适的微控制器(MCU)往往是项目成败的第一步。它不仅要有一颗强劲的“心脏”…
📅 2026/7/22 11:35:06
研发全程有名中医学者卢祥之教授深度介入、全程悉心指导,团队深度挖掘历代中医经典名著内容,严格参照国家级中医药权威教材编撰逻辑,广泛吸纳行业各路中医精英学术智慧,经过海量线下康养实践反复校验、优化迭代,夯实严…
📅 2026/7/22 11:35:06
1. 项目概述与核心价值在嵌入式系统里搞网络通信,尤其是跑在像TI Tiva™这类资源受限的微控制器上,性能瓶颈往往不在主频,而在数据搬运。CPU吭哧吭哧地一个字节一个字节从以太网MAC控制器往内存里挪数据,或者反过来,那…
📅 2026/7/22 11:35:06
更多请点击:
https://codechina.net
第一章:秘塔AI学术边界控制的范式演进与核心定义 秘塔AI学术边界控制并非简单的访问权限开关,而是融合语义理解、知识图谱约束与动态策略引擎的复合治理机制。其范式演进经历了从静态关键词过滤ÿ…
📅 2026/7/22 13:17:55
更多请点击:
https://intelliparadigm.com
第一章:AI视频产品演示的核心价值与技术定位 AI视频产品演示已从传统录屏讲解演进为实时感知、语义理解与动态生成深度融合的技术载体。其核心价值不仅在于提升客户对产品能力的直观认知,更在于通过…
📅 2026/7/22 13:17:55
1. 项目概述:为什么是PixiJS?如果你正在寻找一个能在浏览器里高效、流畅地绘制2D图形的工具,无论是做H5小游戏、数据可视化大屏,还是复杂的互动营销页面,PixiJS大概率会出现在你的候选名单前列。它不是Canvas API的简单…
📅 2026/7/22 13:17:55
1. MobileSAM论文核心贡献解析MobileSAM作为轻量化分割模型的里程碑式工作,其核心创新在于将原始SAM模型的参数量从637M压缩到仅9.6M,同时保持了较好的零样本分割能力。论文提出的解耦蒸馏策略(Decoupled Knowledge Distillation)…
📅 2026/7/22 13:17:55
最近在刷短视频时,你是不是经常看到这样的场景:一块完整的板材,经过设计师在屏幕上点点画画,机器就自动开出各种形状的孔洞,然后组装成精美的家具或装饰品?这种“开孔”操作背后,其实是一套成熟…
📅 2026/7/22 13:17:55
1. 项目概述与核心价值在嵌入式硬件开发中,尤其是面对像德州仪器Tiva™ C系列TM4C1294NCPDT这类功能强大的ARM Cortex-M4微控制器时,最让人又爱又恨的就是它那密密麻麻的引脚和复杂的复用功能表。我刚接触这块芯片时,面对数据手册里动辄几十页…
📅 2026/7/22 13:16:55
1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…
📅 2026/7/22 0:00:13
1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…
📅 2026/7/22 0:00:13
甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…
📅 2026/7/22 0:00:13
1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…
📅 2026/7/22 1:05:21
1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…
📅 2026/7/22 1:05:21
更多请点击:
https://intelliparadigm.com
第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…
📅 2026/7/22 1:05:21
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/22 7:05:39
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/21 17:04:52
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/22 5:05:32