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

python基础学习笔记第七章——文件操作

一、文件的编码1. 编码概念编码是内容和二进制间相互转换的规则集合由于计算机仅识别0和1所以需通过编码将文本转二进制存储也需编码将二进制转回可识别内容。不同编码的转换规则不同使用错误编码读写文件会导致内容乱码。2. 常见编码UTF-8全球通用编码推荐优先使用GBK主要用于中文简体环境Big5主要用于中文繁体环境3. 查看文件编码Windows系统可通过记事本打开文件在底部状态栏查看编码格式。二、文件的基本操作1. 文件操作核心步骤打开文件读写/追加文件关闭文件可仅打开并关闭文件不执行读写操作2. 打开文件open()函数语法open(name, mode, encoding)name文件路径字符串可含绝对/相对路径mode文件打开模式只读r、写入w、追加aencoding编码格式关键字参数推荐UTF-8示例# 以只读模式打开python.txt编码为UTF-8 f open(python.txt, r, encodingUTF-8)注意f为文件对象是Python特殊数据类型后续通过该对象执行文件操作。3. 常用打开模式模式描述r只读文件指针在开头默认模式文件不存在则报错w只写文件不存在则创建文件存在则清空原有内容a追加文件不存在则创建新内容写在原有内容之后三、文件的读取1. 核心读取方法1read(num)读取指定字节数num可选指定读取字节数不指定则读取全部内容f open(python.txt, r, encodingUTF-8) # 读取10个字节 content1 f.read(10) # 读取剩余全部内容 content2 f.read() f.close() print(content1, content2)2readline()一次读取一行内容f open(python.txt, r, encodingUTF-8) # 读取第一行 line1 f.readline() # 读取第二行 line2 f.readline() f.close() print(f第一行{line1}) print(f第二行{line2})3readlines()读取全部行返回列表每行是一个元素f open(python.txt, r, encodingUTF-8) # 得到列表元素含换行符\n content f.readlines() f.close() print(content) # 示例[hello world\n, python\n, itheima\n]4for循环读取逐行读取高效省内存# 直接遍历文件对象每次循环得到一行内容 for line in open(python.txt, r, encodingUTF-8): print(line)2. 关闭文件close()释放文件占用若不关闭程序运行时文件会被Python持续占用。f open(python.txt, r, encodingUTF-8) content f.read() # 必须关闭文件 f.close()3. 自动关闭with open语法无需手动调用close()代码块执行完自动关闭文件推荐使用f open(python.txt, r, encodingUTF-8) content f.read() # 必须关闭文件 f.close()4. 读取练习单词计数需求读取word.txt统计itheima出现的次数word.txt内容itheima itcast python itheima python itcast beijing shanghai itheima shenzhen guangzhou itheima wuhan hangzhou itheima zhengzhou bigdata itheima实现代码# 初始化计数器 count 0 # 打开文件逐行读取 with open(word.txt, r, encodingUTF-8) as f: for line in f: # 去除行尾换行符按空格分割成单词列表 strip () 去首尾空白 split () 按符号切分数据 words line.strip().split() # 遍历单词统计itheima for word in words: if word itheima: count 1 print(fitheima出现的次数{count}) # 结果6四、文件的写入1. 核心语法使用w模式打开文件通过write()写入内容flush()刷新到硬盘避免缓冲区积压。# 1. 以w模式打开文件不存在则创建存在则清空 f open(python.txt, w, encodingUTF-8) # 2. 写入内容仅存于缓冲区未真正写入文件 f.write(hello world\nI love Python) # 3. 刷新缓冲区内容写入硬盘 f.flush() # 4. 关闭文件close自带flush功能可省略flush f.close()2. 简化写法with openwith open(python.txt, w, encodingUTF-8) as f: f.write(hello world\nI love Python) # 自动close自带flush无需手动操作3. 注意事项w模式下文件不存在自动创建文件存在清空原有内容写入的内容必须是字符串数字需先通过str()转换五、文件的追加1. 核心语法使用a模式打开文件写入方法与w模式一致新内容追加在文件末尾。# 以a模式打开文件不存在则创建存在则追加 with open(python.txt, a, encodingUTF-8) as f: # 追加内容\n实现换行 f.write(\n这是追加的内容)2. 注意事项a模式下文件指针默认在文件末尾始终追加写入可通过\n实现换行追加避免内容连在一起同样支持write()和flush()close()自带flush功能六、文件操作综合案例账单备份与数据过滤1. 需求读取bill.txt账单文件备份文件到bill.txt.bak过滤掉标记为测试的行仅保留正式行写入备份文件2. bill.txt原始内容name,date,money,type,remarks 周杰轮,2022-01-01,100000,消费,正式 周杰轮,2022-01-02,300000,收入,正式 周杰轮,2022-01-03,100000,消费,测试 林俊节,2022-01-01,300000,收入,正式 林俊节,2022-01-02,100000,消费,测试 林俊节,2022-01-03,100000,消费,正式 林俊节,2022-01-04,100000,消费,测试 林俊节,2022-01-05,500000,收入,正式 张学油,2022-01-01,100000,消费,正式 张学油,2022-01-02,500000,收入,正式 张学油,2022-01-03,900000,收入,测试 王力鸿,2022-01-01,500000,消费,正式 王力鸿,2022-01-02,300000,消费,测试 王力鸿,2022-01-03,950000,收入,正式 刘德滑,2022-01-01,300000,消费,测试 刘德滑,2022-01-02,100000,消费,正式 刘德滑,2022-01-03,300000,消费,正式3. 实现代码# 打开原文件读和备份文件写同时操作 with open(bill.txt, r, encodingUTF-8) as f_read, open(bill.txt.bak, w, encodingUTF-8) as f_write: # 逐行读取原文件 for line in f_read: # 去除行尾换行符按逗号分割 line_list line.strip().split(,) # 判断是否为测试行最后一列是remarks if line_list[-1] 测试: # 跳过测试行 continue # 正式行写入备份文件保留原换行符 f_write.write(line) print(账单备份并过滤完成备份文件bill.txt.bak)七、核心知识点总结编码优先使用UTF-8避免文件乱码文件操作三步骤打开→操作→关闭推荐with open自动关闭三种核心模式r读、w写清空、a追加读取方法read()、readline()、readlines()、for循环推荐写入/追加write()写入内容flush()刷新硬盘close()自带flushw和a模式文件不存在自动创建w清空原有内容a追加末尾。

相关文章:

python基础学习笔记第七章——文件操作

一、文件的编码1. 编码概念编码是内容和二进制间相互转换的规则集合,由于计算机仅识别0和1,所以需通过编码将文本转二进制存储,也需编码将二进制转回可识别内容。不同编码的转换规则不同,使用错误编码读写文件会导致内容乱码。2. …...

如何通过Deep Lake实现AI模型可解释性:存储训练数据与预测结果关联分析指南

如何通过Deep Lake实现AI模型可解释性:存储训练数据与预测结果关联分析指南 【免费下载链接】deeplake Database for AI. Store Vectors, Images, Texts, Videos, etc. Use with LLMs/LangChain. Store, query, version, & visualize any AI data. Stream data …...

告别Input.GetTouch!Unity Input System实现移动端手势交互(单指旋转+双指缩放)

Unity Input System:移动端手势交互的现代化解决方案 在移动应用开发中,手势交互已经成为提升用户体验的关键要素。传统的Unity输入系统虽然能够实现基本功能,但随着项目复杂度提升,其局限性日益明显。本文将深入探讨如何利用Unit…...

TabNine插件评分与评论系统:如何选择优质AI代码补全扩展

TabNine插件评分与评论系统:如何选择优质AI代码补全扩展 【免费下载链接】TabNine AI Code Completions 项目地址: https://gitcode.com/gh_mirrors/ta/TabNine TabNine是一款革命性的AI代码补全工具,它通过深度学习技术为开发者提供智能代码建议…...

Qwen3-32B镜像免配置实战:RTX4090D单卡10分钟完成大模型推理服务上线

Qwen3-32B镜像免配置实战:RTX4090D单卡10分钟完成大模型推理服务上线 1. 开箱即用的私有部署方案 你是否遇到过这样的困扰:想部署一个大语言模型服务,却被复杂的依赖安装、环境配置、模型加载等问题搞得焦头烂额?特别是像Qwen3-…...

Z-Image-Turbo-辉夜巫女提示词工程入门:掌握C语言基础编写结构化提示词

Z-Image-Turbo-辉夜巫女提示词工程入门:掌握C语言基础编写结构化提示词 你是不是也遇到过这种情况:用AI画图时,输入一段描述,出来的效果总是不太对劲。要么风格跑偏,要么细节缺失,要么干脆给你来个“惊喜”…...

VoxCPM-1.5-WEBUI功能体验:支持声音克隆的语音合成工具

VoxCPM-1.5-WEBUI功能体验:支持声音克隆的语音合成工具 想不想让你的文字“开口说话”,而且是用你指定的声音?无论是为视频配上独特的旁白,还是制作个性化的有声读物,一个高质量的语音合成工具都能让创作过程变得轻松…...

嵌入式C语言缺陷预防:从硬件耦合到静态动态协同检测

1. 嵌入式系统设计中的缺陷预防工程体系在嵌入式硬件开发实践中,一个被反复验证的工程共识是:软件缺陷的修复成本随项目推进呈指数级增长。当缺陷在需求分析阶段被发现并修正,其成本系数为1;进入编码阶段后升至5–10;若…...

OpenClaw+Qwen3-32B:24/7不间断的资料收集与整理方案

OpenClawQwen3-32B:24/7不间断的资料收集与整理方案 1. 为什么需要自动化资料收集 作为一个长期与技术文档打交道的研究者,我发现自己每天要花至少2小时在重复性的资料收集和整理上。从学术论文追踪到行业动态监测,再到技术博客归档&#x…...

如何用AI实现专业级歌声转换?3大核心步骤+5个避坑指南

如何用AI实现专业级歌声转换?3大核心步骤5个避坑指南 【免费下载链接】diff-svc Singing Voice Conversion via diffusion model 项目地址: https://gitcode.com/gh_mirrors/di/diff-svc AI歌声转换技术正逐渐成为音乐创作和音频处理领域的新宠。Diff-SVC作为…...

PyTorch 2.8 强化学习镜像:5分钟搞定Gym+Stable-Baselines3环境,告别依赖地狱

PyTorch 2.8 强化学习镜像:5分钟搞定GymStable-Baselines3环境,告别依赖地狱 1. 为什么你需要这个预装镜像 1.1 强化学习环境配置的痛点 每次开始新的强化学习项目时,最令人头疼的往往不是算法本身,而是环境配置。PyTorch、Gym…...

用Nunchaku FLUX.1 CustomV3做社交配图:快速生成小红书/朋友圈爆款图片

用Nunchaku FLUX.1 CustomV3做社交配图:快速生成小红书/朋友圈爆款图片 在社交媒体时代,一张吸引眼球的图片往往能带来意想不到的传播效果。无论是小红书上的种草笔记,还是朋友圈的日常分享,优质的配图都是提升内容吸引力的关键。…...

10分钟实现AI编程助手与Figma设计工具的无缝集成完整指南

10分钟实现AI编程助手与Figma设计工具的无缝集成完整指南 【免费下载链接】cursor-talk-to-figma-mcp Cursor Talk To Figma MCP 项目地址: https://gitcode.com/GitHub_Trending/cu/cursor-talk-to-figma-mcp 想要让AI编程助手直接操控Figma设计文件,实现代…...

选错方法后果多严重?参数vs非参数估计的7个真实业务场景对比

参数与非参数估计的7个业务决策陷阱:从AB测试到风控的实战避坑指南 当电商平台的AB测试结果出现矛盾时,你可能不会想到问题出在点击率分析方法的底层假设上。去年某跨境电商大促期间,运营团队发现使用核密度估计(KDE)分…...

YOLOv8摄像头监测避坑指南:解决OpenCV常见报错与画面卡顿问题

YOLOv8摄像头监测避坑指南:解决OpenCV常见报错与画面卡顿问题 在计算机视觉项目的开发过程中,实时摄像头监测是最基础也最考验技术功底的功能之一。特别是当我们将YOLOv8这样的高性能目标检测模型与OpenCV结合使用时,往往会遇到各种意料之外的…...

Qwen3-0.6B-FP8辅助STM32开发:代码注释生成与故障排查对话

Qwen3-0.6B-FP8辅助STM32开发:代码注释生成与故障排查对话 最近和几个做嵌入式开发的朋友聊天,发现他们每天花在写代码注释和查硬件问题上的时间,比写核心逻辑的时间还多。尤其是做STM32项目,一个复杂的驱动函数,光是…...

Pensieve代码覆盖率分析:提高项目稳定性的终极指南

Pensieve代码覆盖率分析:提高项目稳定性的终极指南 【免费下载链接】pensieve A passive recording project allows you to have complete control over your data. Automatically take screenshots of all your screens, index them, and save them locally. 项目…...

B站缓存视频转换终极指南:m4s-converter让你轻松保存珍贵内容

B站缓存视频转换终极指南:m4s-converter让你轻松保存珍贵内容 【免费下载链接】m4s-converter 将bilibili缓存的m4s转成mp4(读PC端缓存目录) 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾为B站视频下架而烦恼?那些精心收…...

3步掌握窗口分辨率自定义:SRWE工具让你的游戏截图质量翻倍

3步掌握窗口分辨率自定义:SRWE工具让你的游戏截图质量翻倍 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 在游戏体验和内容创作中,你是否遇到过这样的困境:想捕捉精美的游戏…...

Kornia:解锁PyTorch视觉任务的可微分GPU加速新范式

1. 为什么Kornia是PyTorch视觉任务的新宠? 如果你正在用PyTorch做计算机视觉项目,肯定遇到过这样的场景:需要先用OpenCV做图像预处理,再手动把数据转成张量喂给神经网络。这种割裂的流程不仅麻烦,更致命的是——传统图…...

M2LOrder模型OpenClaw本地部署详解:环境配置与推理优化

M2LOrder模型OpenClaw本地部署详解:环境配置与推理优化 最近有不少朋友在问,想在自己电脑或者公司服务器上跑类似OpenClaw这样的项目,但一看到模型部署就头疼。特别是M2LOrder这类模型,对资源要求不低,怎么才能让它顺…...

突破格式壁垒:QuickBMS的跨平台解析方案与数据提取革新

突破格式壁垒:QuickBMS的跨平台解析方案与数据提取革新 【免费下载链接】QuickBMS QuickBMS by aluigi - Github Mirror 项目地址: https://gitcode.com/gh_mirrors/qui/QuickBMS 在数字化信息时代,面对层出不穷的文件格式和加密算法&#xff0c…...

C++ Linux 环境下内存泄露检测方式

在 C 开发中,内存管理是至关重要的,尤其是当程序处理大数据或长时间运行时,内存泄漏或不当使用可能导致 性能下降 或 崩溃。下面介绍几种常见且有效的 内存泄露检测方法。 1. Valgrind Valgrind 是一个广泛使用的内存调试和性能分析工具&…...

AWS CDK Examples 迁移策略:从传统架构到云原生平台的完整指南

AWS CDK Examples 迁移策略:从传统架构到云原生平台的完整指南 【免费下载链接】aws-cdk-examples Example projects using the AWS CDK 项目地址: https://gitcode.com/gh_mirrors/aw/aws-cdk-examples AWS CDK Examples 提供了丰富的云原生架构示例&#x…...

别再为PPT熬夜了!我用Gamma AI 5分钟搞定了一份惊艳的汇报材料(附保姆级注册使用教程)

用Gamma AI颠覆传统PPT制作:5分钟打造专业级演示文稿的终极指南 你是否曾在深夜对着空白PPT文档发呆,距离汇报截止只剩几小时?或是花了大半天调整字体配色,最终成果却依然像"大学生作业"?现在,一…...

LLaVA-NeXT-Video:突破零样本视频理解的AnyRes与长度泛化技术

1. 从图片到视频的零样本理解革命 当你第一次看到LLaVA-NeXT-Video处理长视频的场景,可能会想起小时候玩拼图的感觉。这个模型就像个天才儿童,能把高分辨率视频自动拆解成若干个小块(我们称之为"视觉token")&#xff0c…...

GME-Qwen2-VL-2B-Instruct实战教程:图文匹配工具集成至现有CMS内容系统

GME-Qwen2-VL-2B-Instruct实战教程:图文匹配工具集成至现有CMS内容系统 1. 项目背景与价值 在内容管理系统(CMS)的日常运营中,图文内容的匹配度检查是一个常见但繁琐的任务。编辑人员需要手动核对图片与文字描述是否相符&#x…...

HG4930嵌入式IMU驱动:RS422协议解析与实时数据转换

1. 项目概述Bolder Flight Systems(BFS)开发的Hg4930库是一个面向嵌入式平台的轻量级、高可靠性驱动程序,专为 Honeywell HG4930 高性能惯性测量单元(IMU)设计。该库不提供传感器配置或校准功能,其核心职责…...

医学图像处理入门:5分钟搞定.nii和DICOM文件的查看与基础分析

医学图像处理入门:5分钟搞定.nii和DICOM文件的查看与基础分析 医学图像处理正逐渐成为医疗诊断和科研的重要工具。无论是临床医生、医学影像技术人员,还是刚接触这一领域的开发者,掌握主流医学图像格式的查看与分析技能都至关重要。本文将带您…...

读领域到底适合构建什么样的 Zero-Party Data 产品?海外有没有接近的实例?

核心判断:严肃阅读的 Zero-Party Data,不该做“娱乐化”,而该做“判断外显化” 对于严肃阅读,读者愿意主动提供的数据,通常不是“我喜欢哪种书封”“你是哪种阅读人格”,而是这些更有认知含量的东西&#x…...