1.文件
什么是文件
文件是操作系统提供的虚拟单位,有了文件我们可以读取数据。
为什么要有文件
内存无法永久保存数据,需要把文件中储存的数据保存在硬盘中,操作系统就可以实现对硬件的操作。
如何使用文件
- 打开文件
- 读写数据
- 保存
- 关闭文件
2.python中如何读取文件呢
Python中可以使用open()方法打开某个具体的文件,只要在open()方法内写入文件路径,这里又分相对路径和绝对路径。
f = open(r'C:Users
ickcDesktop est.txt',encoding='gbk') 相当于你打开的文件
print(f.read()) # 一次性读取所有的内容
print(1,f.read())
del f # 只删除了变量名,但是文件对于操作系统来讲,还是打开状态的
这里我们使用f.close() ,这样不仅删除了变量名f,并且也关闭了文件,这个时候文件对于操作系统来讲是关闭状态的
相对路径和绝对路径
绝对路径,比如在Windows系统下绝对路径从C盘或D盘开始写入一个完整的路径。
相对路径,相对于当前执行文件所在的文件夹开始找。
打开文件之后,文件占用了内存,相当于使用文本编辑器打开了一个文件。而我们操控文件只是为了读和写,因此打开文件并不是目的,读和写才是目的,所以最常见的是读和写模式read和write,还有一个常用的模式是append,a模式。
read,只读模式,只能读不能写,文件不存在时报错。f.read()读取文件指针会跑到文件的末端,如果再一次读取,读取的将是空格。由于f.read()一次性读取文件的所有内容,如果文件非常大的话,可能会造成内存爆掉,即电脑卡死。因此可以使用f.readline()/f.readlines()读取文件内容。
w: 只能写,不能读,文件存在的时候回清空文件后再写入内容;文件不存在时会创建文件后写入内容
a: 追加模式。当文件存在,则会在文件的末端写入内容;文件不存在的时,会创建文件后写入内容。
而文件读写内容的格式有两种
- t模式为text文本模式
- b模式为bytes二进制模式
with open()
前面我们所使用open()方法操作文件,但是open打开文件后我们还需要手动释放文件对操作系统的占用。但是其实我们可以更方便的打开文件,即Python提供的上下文管理工具——with open(),它可以使用逗号分隔,一次性打开多个文件
with open(文件路径,打开模式(rt/wt/at/rb/wb/ab),编码格式) as 变量名:
# 变量名.read/write
with open('test.txt','r',encoding='utf8') as fr:
data = fr.read()
print(data)
3.文件的高级应用
- r+t: 可读、可写
- w+t: 可写、可读
- a+t: 可追加、可读
如果我们需要在文件内容中间的某一行增加内容,使用基础模式很难实现,因此我们需要对文件内的指针进行移动。
seek(offset,whence): offset代表文件指针的偏移量,单位是字节
tell()告诉你光标当前的位置
read(n): n代表的是字符个数,读取光标后的n个字符
truncate(n):如果它有参数,则光标会跳到指定字节数后,然后把后面的文件全部清空
4.修改文件
硬盘上从来没有修改一说,硬盘上只有覆盖,即新内容覆盖旧内容。
若要修改文件,首先将硬盘存放的该文件内容全部加载到内存,在内存中进行修改,修改完毕后存入新的文件,通过os模块删去旧的文件,把新文件改成旧文件名再由内存覆盖到硬盘便完成了替换,如果文件过大可以一行一行的读入内存进行修改,修改完毕后写入新文件,最后用新文件覆盖源文件。这样的好处就是可以同时对源文件进行修改。