python 第8章学习 / 文件

news/2026/1/23 14:20:57/文章来源:https://www.cnblogs.com/xugangfan/p/19522125

以下是根据您提供的《Python文件操作》文档内容,对文件操作相关概念、方法和代码的全面总结。文档主要涵盖文件编码、文件读取、写入、追加及综合案例,我将按照操作类型分类总结,并提供详细的代码示例和注意事项。


一、文件编码概述

文件编码是内容与二进制相互转换的规则,确保文件能被正确读写。

  • 常见编码:UTF-8(全球通用)、GBK、Big5等。
  • 核心原则:统一使用UTF-8编码避免乱码问题。
  • 查看编码:使用记事本打开文件,底部状态栏显示编码格式(如UTF-8)。

二、文件操作基础步骤

文件操作需遵循三步流程:

  1. 打开文件open()函数
  2. 读写文件:读取或写入内容
  3. 关闭文件:释放资源

三、文件读取操作详解

1. 打开文件

f = open("python.txt", "r", encoding="UTF-8")  # 只读模式打开
  • 参数说明
    • name:文件路径(可包含绝对路径)
    • mode:访问模式(常用r为只读)
    • encoding:编码格式(必须关键字传参)

2. 读取方法

方法 说明 代码示例
read() 读取全部或指定字节 f.read(10) 读10字节
readline() 一次读取一行 line = f.readline()
readlines() 读取全部行,返回列表 lines = f.readlines()
for循环 逐行迭代文件 for line in f: print(line)

3. 关闭文件

f.close()  # 释放文件占用
  • 注意事项:未关闭文件可能导致资源占用。

4. 自动关闭文件(推荐)

with open("python.txt", "r", encoding="UTF-8") as f:content = f.readlines()  # 操作完成后自动关闭

四、文件写入操作详解

1. 写入模式(w模式)

f = open("python.txt", "w", encoding="UTF-8")
f.write("hello world")  # 写入内容
f.flush()  # 刷新缓冲区到磁盘
f.close()
  • 特点
    • 文件不存在时创建新文件
    • 文件存在时清空原内容
  • 缓冲区机制write()先写入内存缓冲区,flush()close()时持久化到磁盘。

2. 写入多行内容

f.write("第一行\n第二行")  # 使用`\n`换行

五、文件追加操作详解

1. 追加模式(a模式)

f = open("python.txt", "a", encoding="UTF-8")
f.write("\n追加内容")  # 在文件末尾添加
f.close()
  • 特点
    • 文件不存在时创建新文件
    • 文件存在时在末尾追加内容

六、文件操作模式总结

模式 功能 适用场景
r 只读 读取文件内容,不允许修改
w 写入 创建新文件或覆盖原有内容
a 追加 在文件末尾添加新内容

七、综合案例:账单文件备份与过滤

需求描述

  • 读取账单文件bill.txt
  • 备份到bill.txt.bak
  • 过滤掉标记为“测试”的数据行

代码实现

# 1. 打开源文件和备份文件
with open("bill.txt", "r", encoding="UTF-8") as src:with open("bill.txt.bak", "w", encoding="UTF-8") as bak:# 2. 逐行读取并过滤for line in src:if "测试" in line:continue  # 跳过测试数据bak.write(line)  # 写入非测试数据
  • 关键逻辑
    • 使用with open自动管理文件开关
    • 通过if "测试" in line过滤无效数据
    • 逐行写入备份文件

八、最佳实践与注意事项

  1. 编码统一:始终使用encoding="UTF-8"避免乱码
  2. 资源管理:优先用with open替代手动close()
  3. 大文件处理:使用for line in f逐行读取,避免内存溢出
  4. 写入效率:多次写入后统一flush()减少磁盘操作频率

九、课后练习:单词计数

需求

统计文件word.txt中单词"itheima"的出现次数

count = 0
with open("word.txt", "r", encoding="UTF-8") as f:for line in f:count += line.count("itheima")
print(f"itheima出现次数:{count}")

以上总结涵盖了文档中所有关键操作,如需进一步了解特定方法或案例细节,可随时提问!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1205251.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动化数控机床市场洞察:2026年哪些品牌受青睐?动力刀塔数控车/空调配件数控机床,自动化数控机床采购供应链

在制造业智能化转型的浪潮中,自动化数控机床作为核心生产装备,其精度、效率与稳定性直接影响企业订单交付能力与产品良率。据行业权威机构统计,2025年国内数控机床市场规模突破800亿元,其中高精度、多场景适配型设…

DSPE-PEG3.4K-FA,磷脂-聚乙二醇-叶酸,DSPE-PEG3400-Folic acid,DSPE-PEG3.4K-FA

DSPE-PEG3.4K-FA,磷脂-聚乙二醇-叶酸,DSPE-PEG3400-Folic acid,DSPE-PEG3.4K-FADSPE-PEG3.4K-FA 是一种典型的脂质-聚合物-小分子偶联结构分子,由磷脂 DSPE(1,2-二硬脂酰-sn-甘油-3-磷脂酰乙醇胺)、分子量约…

NMN是什么?最新研究发现:NMN通过NAD⁺激活干细胞,延缓衰老的关键机制

NMN是什么?为什么近几年频繁出现在“抗衰老”研究中? 随着年龄增长,很多人会发现身体修复能力下降、精力恢复变慢,而这些变化的背后,往往指向同一个核心分子——NAD⁺。 研究发现,NAD⁺与衰老密切相关,它不仅是…

导师推荐10个AI论文写作软件,继续教育学生轻松搞定论文!

导师推荐10个AI论文写作软件,继续教育学生轻松搞定论文! AI 工具助力论文写作,轻松应对学术挑战 在当前继续教育的背景下,越来越多的学生和科研工作者需要撰写高质量的学术论文。面对繁重的写作任务和严格的格式要求&#xff0c…

API数据分析:淘宝流量来源分析,渠道优化!

在电商领域,流量来源分析是优化营销策略的核心。淘宝作为中国领先的电商平台,其流量数据可通过API(应用程序接口)高效获取和分析。本技术帖将逐步指导您如何利用淘宝API进行流量来源分析,并基于数据优化渠道策略。我们…

2026年性价比高的售后完善的装修专业公司推荐,别错过!

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家南京及周边区域的装修标杆企业,为有居住品质提升需求的业主提供客观依据,助力精准匹配适配的服务伙伴。 TOP1 推荐:南京大境空间设计 推荐指数:★★★★★…

2026年宁夏户外创意广告牌公司排名,昊远联动传媒位列前茅

在数字化传播与线下场景深度融合的今天,一块占据城市核心地段的户外创意广告牌,早已超越单纯的信息展示功能,成为品牌与消费者建立情感连接、传递核心价值的城市名片。面对市场上良莠不齐的户外广告制作公司,如何精…

[Javascript] using void to ignore waiting for promise

When you have an async function, but your usecase doesnt need to wait for the promise to finish, instead of using await, you can use void to effectively ignores the promise. void suggestTagsSampling(ag…

​Android 基础入门教程​Handler消息传递机制浅析

3.3 Handler消息传递机制浅析 分类 Android 基础入门教程 本节引言 前两节中我们对Android中的两种事件处理机制进行了学习,关于响应的事件响应就这两种;本节给大家讲解的 是Activity中UI组件中的信息传递Handler,相信很多朋友都知道&…

大庆市林甸肇源肇州杜尔伯特英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜

在雅思培训热潮持续升温的2026年,大庆市林甸、肇源、肇州、杜尔伯特地区的雅思考生却深陷多重困境:优质培训资源匮乏、提分技巧针对性不足、备考方案缺乏个性化适配,加之雅思考试全面拥抱机考趋势,院校录取语言门槛…

本土化战略赋能:Gitee如何重塑企业级项目管理新范式

本土化战略赋能:Gitee如何重塑企业级项目管理新范式 在全球数字化转型浪潮下,项目管理工具已成为企业提升协作效率的刚需。随着国内企业对数据主权和本土化服务需求的显著提升,以Gitee为代表的本土项目管理平台正迎来前所未有的发展机遇。在功…

MySQL 8 SQL调优实战:手把手教你读懂执行计划 (EXPLAIN) 与性能分析

兄弟们,咱们搞技术的,特别是和数据库打交道的,有没有过这种经历? 平时在开发环境写代码,数据量就几百条,那SQL写得叫一个“行云流水”,各种 SELECT *,各种 LEFT JOIN 连得飞起&…

线上二手交易小程序源码系统 源码全开源可以二开

温馨提示:文末有资源获取方式 随着消费观念的升级与可持续生活方式的普及,线上二手交易正成为数字经济中不可或缺的一环。一个成功的平台不仅需要稳固的交易功能,更需要独特的社区氛围与用户粘性。我们向您推荐一款深度融合电商与社交基因的二…

农业文档中的WORD图片粘贴到CKEDITOR为何模糊?

要求:开源,免费,技术支持 编辑器:ckeditor 前端:vue2,vue3.vue-cli 后端:asp,java,jsp,springboot,php,asp.net,.net core 功能:导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,…

2026年本地化部署支持多轮对话电话语音机器人厂商名单

随着企业数字化转型进入深水区,客户联络中心正经历从“成本中心”向“价值中心”的智能化跃迁。其中,支持复杂多轮对话的本地化部署电话语音机器人,因能兼顾数据安全、业务适配与智能化体验,成为众多对合规性、稳定…

2026版大厂Java面试 / 学习指南,共计1100+ 题全面解析

程序员一步入中年,不知不觉便会被铺天盖地的“危机感”上身,曾经的那个少年已经不在,时间就是这样公平。就算你能发明 Java 语言,随着时间的推移,你注定还是要成为慢慢变蔫的茄子,缓缓变黑的葡萄。 看着金…

Android 基础入门教程3.4 TouchListener PK OnTouchEvent + 多点触碰

3.4 TouchListener PK OnTouchEvent 多点触碰 分类 Android 基础入门教程 本节引言: 如题,本节给大家带来的是TouchListener与OnTouchEvent的比较,以及多点触碰的知识点! TouchListener是基于监听的,而OnTouchEvent…

2026年可靠的方形摇摆筛排名,中药粉、矿山用筛全解析

在工业生产的细分领域里,方形摇摆筛作为关键的物料分选设备,其性能优劣直接关系到生产线的效率、产品品质与成本控制。尤其在中药粉加工、矿山开采等对筛分精度与稳定性要求严苛的场景中,选择一款可靠的方形摇摆筛,…

Android 基础入门教程3.5 监听EditText的内容变化分类

3.5 监听EditText的内容变化 分类 Android 基础入门教程 本节引言: 在前面我们已经学过EditText控件了,本节来说下如何监听输入框的内容变化! 这个再实际开发中非常实用,另外,附带着说下如何实现EditText的密码可见…

学霸同款2026 TOP9 AI论文网站:专科生毕业论文必备测评

学霸同款2026 TOP9 AI论文网站:专科生毕业论文必备测评 2026年学术写作工具测评:专科生毕业论文的高效助手 在当前高校教育日益注重学术规范与创新能力的背景下,专科生在撰写毕业论文时常常面临资料查找困难、格式不规范、写作效率低等挑战。…