11.文件操作

1.文件

什么是文件

文件是操作系统提供的虚拟单位,有了文件我们可以读取数据。

为什么要有文件

内存无法永久保存数据,需要把文件中储存的数据保存在硬盘中,操作系统就可以实现对硬件的操作。

如何使用文件

  1. 打开文件
  2. 读写数据
  3. 保存
  4. 关闭文件

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模块删去旧的文件,把新文件改成旧文件名再由内存覆盖到硬盘便完成了替换,如果文件过大可以一行一行的读入内存进行修改,修改完毕后写入新文件,最后用新文件覆盖源文件。这样的好处就是可以同时对源文件进行修改。

原文地址:https://www.cnblogs.com/yellowcloud/p/10940436.html