文件处理

文件操作方法

  读系列

    读指的是将字符从文件的内部读出的过程,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.新建

    做法是创建一个新的文件,将源文件内容逐行输出、修改后写入新文件,删除原文件再将新文件改名。

    优点是逐行输出节省内存,缺点是一段时间内会存在两个一个的文件。

 

posted @   临江沂水  阅读(298)  评论(0编辑  收藏  举报
编辑推荐:
· 基于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最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示