怎么在Python中对文件进行操作

  介绍

今天就跟大家聊聊有关怎么在Python中对文件进行操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一:文件的打开模式

了解过字符编码都知道,文件都是以某一种标准编码成二进制存在硬盘里的,在文件的默认打开模式下f=开放(& # 39;a.txt& # 39; & # 39; rt # 39;,编码=& # 39;utf - 8 # 39;)其中的t表示是以文本模式打开文件,在应用程序给操作系统发送数据请求后,操作系统在硬盘读取二进制编码,然后返还给应用程序,通过开放的方法,将编码解码成我们看到的字符,如果是以b模式打开文件的话,开放的方法不会对操作系统返回的二进制数据作处理,而是直接打印。

f =,开放(& # 39;a.txt& # 39; & # 39; rt # 39;,编码=& # 39;utf - 8 # 39;)

其中的t表示是以文本模式打开文件,在应用程序给操作系统发送数据请求后,操作系统在硬盘读取二进制编码,然后返还给应用程序,通过开放的方法,将编码解码成我们看到的字符,那么在b模式下打开文件,操作系统返还直接是一串二进制数字

文件的三种打开方式:

只读模式:" " # 39;

只写方式:& # 39;w # 39;

追加模式:& # 39;一个# 39;

以字节模式打开文件的话,需要注意:

一定要写上的b # 39;,只能以rb,世行,ab这种形式打开文件,不能省略的b # 39;。

f =,开放(& # 39;a.txt& # 39; & # 39; rb # 39;),,   时间=f 开放(& # 39;a.txt& # 39;, & # 39; wb # 39;),   时间=f 开放(& # 39;a.txt& # 39;, & # 39; ab # 39;),   #错误写法   时间=f 开放(& # 39;a.txt& # 39;, & # 39; " # 39;), #未注明以b模式打开,这种写法是默认文本模式打开,   f =,开放(& # 39;a.txt& # 39;, & # 39; rb # 39;, encode =, & # 39; utf - 8 # 39;), # b模式打开,不能传入编码方式

字节模式下读写都是以字节为单位的。如果想写入字符,需要编码后以字节类型写入

f =,开放(& # 39;a.txt& # 39; & # 39; wb # 39;)   f.write(& # 39;你哈& # 39;.encode (& # 39; utf - 8 # 39;))

注意:对于非文本文件,我们只能使用字节模式,“b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码,图片文件的jgp格式,视频文件的avi格式)

二:字节模式下的操作

字节模式打开非文本文件

with 开放(& # 39;1. jpg # 39;,, & # 39; rb # 39;), as  f:, #,以只读模式打开文件   时间=data 才能;f.read(),,,,,,, #,读取文件全部内容,并赋值给变量数据   打印(数据),,,,,,,,,,,#,打印变量,我们得到是b # 39; \ xff \ xd8 \ xff \ xe0 \ x00这种形式的结果   print(类型(数据)),,,,,,,,#,变量的类型& lt; class  & # 39;字节# 39;比;      with 开放(& # 39;1. jpg # 39; & # 39; rb # 39;), as  f:   ,,,data =, f.read ()   print(类型(数据))   打印(data.decode (& # 39; utf - 8 # 39;)),,, #将读取的编码以utf - 8标准解码   ,,,,,,,,,,,,,,,,#图片文件编码方式不是utf - 8,所以不能解码,程序报错

以字节模式打开文本文件:

with 开放(& # 39;db.txt& # 39;,, & # 39; rb # 39;), as  f:,   时间=data 才能;f.read ()   打印(数据),,,,,,,,,#,打印出来的是一串二进制数   打印(data.decode (& # 39; utf - 8 # 39;)), #,把二进制数用utf - 8标准解码   print(类型(数据)),,,,,,#,可以在屏幕上显示人类能看懂的字符了      with 开放(& # 39;db.txt& # 39;,, & # 39; wb # 39;), as  f:   f.write才能(& # 39;你好啊\ n # 39; .encode (& # 39; utf  8 & # 39;))

在以字节打开文件时,文件的操作都要基于二进制进行了。

三:文件的修改

文件的修改并不是我们直观感受上的擦除重新写上,基于硬盘的特性,任何文件的修改操作都是新内容对原内容的覆盖。修改的概念存在于内存中,当应用程序启动,请求操作系统从硬盘中读取数据,读取的数据运行在内存上,这时,我们在应用程序上的操作修改类内存上的数据内容,但是并不影响到硬盘的数据。当我们点击保存时,新的数据会将原数据覆盖。这时,才完成了文件的修改。

修改文件方式一:
1:先把文件内容全部读取
2:在内存中修改
3:把修改好的内容覆盖写入到硬盘上

with 开放(“db.txt",,“r",,编码=皍tf-8"), as  f:,, #,打开文件   时间=data 才能;f.read(),,,,,,,,,,,,,,,, #,读取文件全部内容   data 才能=,data.replace(“你好啊:“,,,======?,,,,#,修改文件内容   ,,   with 开放(“db.txt",,“w",,编码=皍tf-8"), as  f:,, #,以“w # 39;模式打开,清空文件   f.write才能(数据),,,,,,,,,,,,,,,,,#,把修改后的数据写入

怎么在Python中对文件进行操作