一.文件的基本操作

1.打开文件

在 python 中打开文件我们需要使用内置函数找到文件的路径和文件的模式后就可得到文件对象。 encoding 是指定编码格式,errors是忽略的意思表示强行打开。但如果强行打开就会出现乱码

标准模块文件扩展名(08文件与模块)(1)

标准模块文件扩展名(08文件与模块)(2)

图中有三个参数,第一个是 ‘test.txt’ ,它表示与我们所编码的文件 test.py 处于同一文件下的文档 test.txt

标准模块文件扩展名(08文件与模块)(3)

第二个是 ‘r’ ,它表示只读模式。第三个是所使用编码模式,我们将写完的东西进行保存一般都是以 utf-8 的形式保存。encoding 可以将字符串编码成指定的编码

标准模块文件扩展名(08文件与模块)(4)

1.路径(第一个参数)

路径有两种,一种相对路径,一种绝对路径。

(1)相对路径相对路径是从文件本身出发,寻找文件。./ 表示当前目录(点 斜杠),…/ 表示上级目录(点点 斜杠),文件名/ 表示进入目录。如下,我们从编码所在文件出发./到上级目录…/再输入我们想要打开的文件名。

标准模块文件扩展名(08文件与模块)(5)

标准模块文件扩展名(08文件与模块)(6)

标准模块文件扩展名(08文件与模块)(7)

(2)绝对路径

绝对路径是指直接找到你所想要打开的文件的地址输入到第一个参数里就可以了。(图片中的蓝色字体复制粘贴即可)

##但这里会有一个问题,在之前所学中我们知道 字母表示转义的意思,\t表示制表符缩进的意思。这里我们有两种办法可以解决。第一种就是在第一个参数前加上r,第二种是单斜杠变成双斜杠。这两种都是反转义的意思。

标准模块文件扩展名(08文件与模块)(8)

标准模块文件扩展名(08文件与模块)(9)

标准模块文件扩展名(08文件与模块)(10)

2.文件的打开有五种模式。(第二个参数)

(1).只读模式(r)只可以读,但不可以写。如果找不到文件会报错。

标准模块文件扩展名(08文件与模块)(11)

(2)只写模式(w)只可以写不可以读,无论有没有文件,都会创建然后覆盖。

标准模块文件扩展名(08文件与模块)(12)

(3)追加模式(a)只可以写,不可以读,找不到文件会自动创建,如果有就不新建。

标准模块文件扩展名(08文件与模块)(13)

(4)叠加(b)叠加,二进制打开。b只可与上面三种模式叠加,不可单独使用。

标准模块文件扩展名(08文件与模块)(14)

(5)叠加,更新( )能够让我们的模式可以读也可以写,但不可单独使用,需与前三种叠加使用。

标准模块文件扩展名(08文件与模块)(15)

###补充一下这里的 b和 也可叠加,例如 ab wb ,但不可写成aw,rw,ra

3.文件分类

(1)字符文件点击记事本打开,凡是看得懂的都是字符文件——各种文本文档。我们可以用 r,w,a 模式进行读写。

(2)字节文件点击记事本打开,凡是看不懂的都是字节文件——图片,音频,视频。我们只能使用叠加b的方式打开二进制文件。像 rb,wb,ab。一般都是我们将图片或视频用记事本的形式打开造成的。

二.文件的写入

标准模块文件扩展名(08文件与模块)(16)

1.write:写文件直接调用write方法,write方法每次只可以接受一个参数。如果想要一次写入多个内容,那就需要使用writelines

2.flush:文件最开始写入会写入到内存中,只有调用flush刷新到硬盘中才能保存到文件

3.close:关闭文件也会自动保存修改到文件中,如果没有close,文件就没有关闭,就无法对文件做出删除命令。

但在上图中,flush 明显是多余的,因为close本身就会保存无需再加flush。

三.读取文件

读取文件时,会读取光标之后的内容。所有我们要去查看指针的位置,因为一个字占三个字符,所有我们打印出来是十八个字符。(a模式光标默认定义在最后,a模式的write,会自动把光标设置最后去写,r再设置的光标位置写,会覆盖)

1当文件读取之后,可以调用 tell 方法查看文件中指针的位置。( file.tell() )

标准模块文件扩展名(08文件与模块)(17)

标准模块文件扩展名(08文件与模块)(18)

2.当指针在末尾时读取不出内容,需要把指针移动到文件开头。( file.seek(0))

标准模块文件扩展名(08文件与模块)(19)

3.一次读取一行 ( readline )

标准模块文件扩展名(08文件与模块)(20)

4.一次读取多行(readlines )读取返回的是列表

标准模块文件扩展名(08文件与模块)(21)

##\n表示空格,假设我们想要读取第二行可以用里[1]来表示。

四.关闭文件

我们之前一直使用close关闭文件,但是with可以自动关闭文件,所有我们之后就来使用with。

1.with的格式是:with open(‘test.txt’,‘a ’,encoding=‘utf-8’) as file:

标准模块文件扩展名(08文件与模块)(22)

2.复制文件

读取要复制的文件,写入指定位置。(图中 lo lp coco都可自主命名)

标准模块文件扩展名(08文件与模块)(23)

五.文件流(仅供了解,不多做讲解)

如果想要存储数据,读,写,但是又不想要持久化到硬盘,那么可以使用文件流

标准模块文件扩展名(08文件与模块)(24)

六.目录

我们需要导出 import os 模块

1.获取当前路径(getcwd)

标准模块文件扩展名(08文件与模块)(25)

2.切换路径(chdir)

标准模块文件扩展名(08文件与模块)(26)

3.查看文件和子目录,默认是当前目录(listdir)

标准模块文件扩展名(08文件与模块)(27)

4.创建文件夹 如果想要返回上一级创建。就加上 …/ (mkdir)

标准模块文件扩展名(08文件与模块)(28)

5.对文件夹改名字(rename)

标准模块文件扩展名(08文件与模块)(29)

6.创建多层目录(makedirs)

标准模块文件扩展名(08文件与模块)(30)

7.删除文件(remove)

标准模块文件扩展名(08文件与模块)(31)

8.删除目录( rmdir)

标准模块文件扩展名(08文件与模块)(32)

9. 调用系统命令(system) ###mspaint是画图的命令,回车后可直接调用画图工具(calc计算机)

标准模块文件扩展名(08文件与模块)(33)

10.路径操作( path)### abspath 把相对路径转成绝对路径

标准模块文件扩展名(08文件与模块)(34)

七.模块和包

1.模块:模块就是 python 文件。

我们可以新建一个模块(就是python文件)命名为son.py并在其中打印出 print(‘son model’),再回到我们使用的python文件中输出 import son,F5运行,就会打印出模块(son.py)中的内容了。

标准模块文件扩展名(08文件与模块)(35)

假设 son 文件中还存在两个函数,但我们只需要其中一个。但在导入模块时会将模块中的所有内容都导入,所有这个时候我们就需要部分导入了 from。。。import。。。。as。。。 from 后加导入的模块,import 后加模块中的函数或别的你所需要的东西,as 后叫你起的名字。(as不常用)导入 son 模块中的 test1。

标准模块文件扩展名(08文件与模块)(36)

标准模块文件扩展名(08文件与模块)(37)

2.路径的添加

(1)name 代表模块的名字

如果是在当前文档中打印就会出现__main__,但如果是导入的模块中打印 __name__就会出现模块本身的名字。

标准模块文件扩展名(08文件与模块)(38)

标准模块文件扩展名(08文件与模块)(39)

2.包

所谓的包,就是存放多个模块的文件夹,并且其中会有__init__.py 这样的文件。

标准模块文件扩展名(08文件与模块)(40)

,