文件读写过程
我们知道,文件系统的作用是把数据进行具象化操作,比如我们把数据看做大象,数据接口看做冰箱口,冰箱口把世界划分为两部分:冰箱里和冰箱外。问:把大象放进冰箱里要几步?
和上述步骤一样,将数据放入文件也需要三步:
1、打开文件
2、将数据写入文件
3、关闭文件
file = open("test.txt","w") #打开文件
file.write("数据") #写入数据
file.close() #关闭文件
将数据从文件取出也需要三步:
1、打开文件
2、将数据从文件读出
3、关闭文件
file = open("test.txt","r") #打开文件
data = file.read() #读取数据
file.close() #关闭文件
模式详解
主要模式
读写模式有很多种,主要的模式其实就三种:r ,w ,a
r 即read,代表只读模式
w 即write,代表只写模式
a 即addition,代表追加写入模式
我们打开文件时,若文件不存在,r模式打开会报错,w和a则自动创建文件。除此之外,我们还要提及一个文件操作过程中的一个重要东西,即文件指针
文件指针和光标类似,其位置代表了打开文件后,进行后续操作的起始位置
对于r和w模式,打开文件后,文件指针位于文件开头的位置,读模式则从头开始读到尾,写模式则直接覆盖了原数据,或者说一打开就把文件原数据清空了,文件变成了空文件:
而对于a模式,打开文件后,指针位于文件结尾的位置,写入数据则直接写在原数据的尾部:
衍生模式
各种模式都有其衍生模式 b, + , b+,如r模式的衍生模式有:
rb,r+,rb+
b代表对二进制(binary)文件进行操作
+代表支持读写
b+则表示对二进制进行操作,并支持读写
那么到这里你肯定会问,r+ ,w+都是可支持读写,那不是重复了么?其实不然,我们的各种衍生模式都要遵循主模式的特点:
我们前面提到过,r模式打开文件,若文件不存在则报错,r+也是如此,文件不存在就报错
而对于w+,若文件不存在,我们打开时将自动创建该文件,并不会报错,若文件存在,则会把原数据清空了
同理,rb+和wb+的区别也如上