Python 文件读写

avatar
作者
猴君
阅读量:1

文件读写操作一般步骤,打开文件(需要指定打开的文件路径,文件读写模式,和编码格式,默认编码是GBK),读写文件,关闭文件(在关闭文件的时候,就会自动保存到磁盘上面去了。在没有关闭文件之前,所有的写文件的内容暂时是存储在内存当中)

  1. Python 文件常用打开模式说明

读文件模式

打开模式模式说明适用场景
r以只读模式打开文件,文件指针将放在文件的开头普通的读取数据
r+以可读可写的模式打开文件,文件指针将会放在文件的开头普通的读取数据
rb以只读模式且是二进制格式打开一个文件,文件指针将会放在文件的开头适用于文件,图片,视频,音频等文件读取
rb+以读写的模式且是二进制格式打开一个文件,文件指针将会放在文件的开头适用于文件,图片,视频,音频等文件读取

写文件模式

打开模式模式说明
a以只写模式,打开一个文件用于追加内容,如果文件已存在,文件指针会被放在文件的末尾。如果文件不存在,则创建新文件进行写入
a+以读写模式,打开一个文件用于追加内容,如果文件已存在,文件指针会被放在文件的末尾。如果文件不存在,则创建新文件进行写入
w以只写模式,打开一个文件。如果该文件已经存在则会将其内容覆盖。如果文件不存在,则创建新文件
w+以读写模式,打开一个文件。如果该文件已经存在则会将其内容覆盖。如果文件不存在,则创建新文件
wb以只写模式且是二进制格式打开一个文件,如果该文件存在则会将其内容覆盖。如果文件不存在,则创建新文件
wb+以读写模式且是二进制格式打开一个文件,如果该文件存在则会将其内容覆盖。如果文件不存在,则创建新文件
ab以读写模式且是二进制格式打开一个文件,如果该文件存在则文件指针将放在文件内容末尾对内容进行追加。如果文件不存在,则创建新文件

注意:使用二进制格式进行读写的时候,要注意编码的问题,默认是GBK编码。以什么编码格式写进去数据,就要以什么编码格式来读取数据并进行解码操作。

  1. 写文件使用示例

以 w 模式打开一个文件,并写入。同时指定编码格式

f = open('./Test.txt', 'w', encoding='utf-8') f.write('我喜欢学习python') f.close()  

以 wb 模式打开一个文件,并以二进制的格式进行写入,同时指定编码格式

f = open('./Test.txt', 'wb') f.write('我喜欢学习python'.encode('utf-8')) f.close()  
  1. 读文件使用示例

以 r 模式打开一个文件,并读取文件的内容。

f=open('./Test.txt','r',encoding='utf-8') print(f.read()) #读所有的数据 print(f.read(3)) # 每次只读3个字 print(f.readline()) #每次只读一行 print(f.readlines()) #读所有数据,并且返回一个列表 f.close() 

以 rb 模式打开一个文件,并以二进制的格式进行读取,拿到数据后,进行二进制数据解码

f=open('./Test.txt','rb') data=f.read() print(data.decode('utf-8')) #进行解码,以什么编码格式写进去的数据就以什么编码格式进行解码 f.close() 
  1. 使用 with上下文管理 进行文件读取

使用 with 语句,不管在处理文件过程中是否发生异常,with 语句都能保证执行完毕后,会自动释放打开的关联的文件对象。也就是不需要手动关闭文件

语法示例如下:

with open('./Test.txt','rb') as f:     data=f.read()     print(data.decode('utf-8')) 
  1. 文件定位操作

文件定位,指的是获取当前文件指针读取到的位置,也就是光标位置

文件定位所使用到的函数如下:

  • tesll() 函数,返回文件指针当前所在的位置
  • truncate() 函数,对源文件进行截取操作。例如:truncate(3) 表示,保留当前源文件前3个字符,剩下的统统删除掉。
  • seek(offset,from) 函数,用来控件文件指针定位到其他位置进行操作。offset 表示偏移量单位字节,负数是往回偏移,正数是往前偏移。from 位置:0 表示文件开头,1表示当前位置,2表示文件末尾

使用 seek() 函数注意事项,如若进行往回偏移,那么必须要以二进制的读取格式进行文件读取,否则只能从文件开头计算相对位置(即只能往前偏移)。若强行往回偏移,则会引发异常。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!