文件处理
文件操作方法
读系列
读指的是将字符从文件的内部读出的过程,python中有多个方法可以实现这种目的。
1.read方法,此方法可以一次性读取文件所有的内容。
2.readline方法,此方法可以每次只读文件一行内容,再使用一次可以读取下一行。
3.readlines方法,此方法会读取文件所有的内容,并组织成列表的形式,每个元素就是文件的每行内容。
4.readable方法,此方法可以判断当前文件是否可读。
写模式
写指的是将字符写入文件的内部的过程,python中有多个方法可以实现这种目的。
1.write方法,此方法可以往文件内部写入文本内容,写入的内容必须是字符串类型。
2.writelines方法,此方法可以将列表内的多个字符串元素全部写入。
3.writable方法,此方法可以判断当前文件是否可写。
优化操作
在使用read方法的时候,在一次性读取完后,光标会停留在文件的末尾,无法再次读取。
并且在读取大文件时,可能会造成内存溢出的情况。
为解决上述问题,最好的解决方法是使用for循环来逐行读取数据。
文件操作模式
文本模式
文本模式是默认的模式,只写“r”就表示进入文本模式。
文本模式所有的操作都是以字符串为基本单位的。
文本模式必须要指定encoding参数。
该模式只能操作文本文件。
二进制模式
二进制模式在使用时在设置读写模式时要加b,表示使用二进制模式。
二进制模式可以操作任何类型的文件。
二进制模式所有操作都是以bytes类型为基本单位。
二进制模式不需要指定encoding参数。
二进制模式读写操作
write方法写入的应当是二进制数,如果想正常写入字符应先使用encode方法。
同样使用read方法只会读出二进制数,需先使用decode方法。
read方法可以传入数字,在t模式下表示的是读的字符个数,在b模式下表示字节个数。
需要注意的是,英文字符统一使用一个字节表示,中文字符使用三个字节表示。
文件内光标的移动
使用seek方法可以控制文件内光标的移动,seek方法有两个参数offset,whence。
offset表示位移量,以字节为最小单位,正数从左到右移动,负数从右到左移动。
whence表示模式,共有三种模式:
0:以文件开头为参考系,支持t,b两种模式。
1:只支持b模式,以当前位置为参考系。
2:只支持b模式,以文件末尾为参考系。
、
文件的内容修改
方式1.覆盖
做法是先读出文件内的全部内容之后赋予变量,利用变量完成修改后,用只写模式打开原文件,清空原内容后写入。
该模式的优点是在一个文件内进行操作,缺点是一次性读出数据占用内存。
方式2.新建
做法是创建一个新的文件,将源文件内容逐行输出、修改后写入新文件,删除原文件再将新文件改名。
优点是逐行输出节省内存,缺点是一段时间内会存在两个一个的文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通