python 文件操作

一.文件操作

使用python来读写文件是非常简单的操作. 我们使⽤用open()函数来打开一个⽂文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. 根据打开方式的不同能够执行的操 作也会有相应的差异. 打开⽂文件的⽅方式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 默认使⽤用的是r(只读)模式
f = open(str,mode=“r”,encoding=‘utf-8’)
str是你要打开的文件, mode选择你想进行的操作,encoding选择编码集 在国内一般是gbk或者utf-8

二.只读操作(r,rb)

1.r
python 文件操作
打开一个文件后记得关闭该文件 close()
2.rb
rb读出来的是bytrs类型,在rb和wb和ab模式下.不能选择encoding编码集
python 文件操作
rb的作用:在读取非文本文件的时候,比如MP3.图像.视频等信息的时候就需要用到rb.在后面我们文件上传下载的时候也基本是用这个传输
3.读取文件的方法:
read() 将文件中的内容全部读取出来,不过在读取大文件的时候会非常消耗内存
read(n) 一次性读取n个字符,如果再次读取,会在当前位置继续而不是从头读.如果使用的是rb模式,则读取的是n个字节
python 文件操作
readline()一次读取一行数据,不过readline()结尾一般都会有个\n,我们可以用strip()方法来处理掉
python 文件操作
4.readlines() 将每一行当一个元素放到一个列表中,会一次性把文件中的所有数据全部读出来,也容易出现内存崩溃的问题
python 文件操作
5.循环读取 这种比较好用 每次读取一行内容,不过不太适合那种所有内容都在一行里的文件
python 文件操作

三.只写模式(w,wb)

写的时候注意. 如果没有文件. 则会创建文件, 如果文件存在. 则将原件中原来的内容删除, 再写入新内容

任何对文件有写入的操作,记得在关闭文件前要加上flush()操作
python 文件操作

在只写模式下是不能读的
wb模式下.可以不指定打开文件的编码.但是在写文件的时候必须将字符串转化成bytes数据

四.追加写入(a,ab)

在追加写入的时候.写入的类容会追加在文件的结尾
python 文件操作

五.+操作

1.读写操作 r+,r+b

对于读写模式 必须是先读,因为默认光标是在开头的.准备读取的.当读完之后在进行写入,这时候光标就到了末尾,我们写入的也就添加到了末尾.所以r+可以说是使用频率最高的一种操作了

python 文件操作
r+模式下.必须先读取.然后在写入

2,写读操作 w+,w+b

同w模式,先将文件的所有内容清空.然后在写入,最后在读取,并不常用
python 文件操作

3.追加读写 a+

a+模式下不论先读还是后读,都是读取不到数据的,因为a+模式光标默认在文件末尾
python 文件操作

六.其他操作

1.seek(n)

seek(n) 光标移动到n位置,移动的单位是byte.所以如果是utf-8的中文部分需要写入3的倍数
通常我们都是移动到开头或者结尾
seek(0)移动到开头
seek(0,2)移动到末尾,seek的第二个参数表示的是光标从那个位置开始偏移,默认是0,表示在开头,1表示当前位置,2表示结尾
python 文件操作

2.tell()

tell()可以帮助我们获取到光标当前的位置

python 文件操作
python 文件操作

在r+模式下,不论读取了多少内容,光标显示的位置是多少,再写入或者操作文件的时候都是在末尾进行的操作

七.修改文件

文件修改:将文件读入到一个新文件中,在读写的过程中修改你要修改的部分,然后将原文件删除,最后把新文件重命名成老文件的名字 (需要导入os模块)
import os
python 文件操作
**在with…as…内最后会自动帮我们调用flush()函数和close()函数