08文件

一.文件的基本操作

1.打开文件

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

1.路径(第一个参数)

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

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

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
(2)绝对路径

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

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

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述
###补充一下这里的 b和+ 也可叠加,例如 ab+ wb+,但不可写成aw,rw,ra

3.文件分类

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

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

二.文件的写入

在这里插入图片描述

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

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

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

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

三.读取文件

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

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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

3.一次读取一行 ( readline )

在这里插入图片描述

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

在这里插入图片描述
##\n表示空格,假设我们想要读取第二行可以用里[1]来表示。

四.关闭文件

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

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

[外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imbg.csdnimg.cn/202CohD610204154330276.2ps://img-blog.csdnimg.cn/20210204154330276.png)]

2.复制文件

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

在这里插入图片描述

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

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

在这里插入图片描述
六.目录

我们需要导出 import os 模块

1.获取当前路径(getcwd)

在这里插入图片描述
2.切换路径(chdir)

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

6.创建多层目录(makedirs)

在这里插入图片描述

7.删除文件(remove)

在这里插入图片描述

8.删除目录( rmdir)

在这里插入图片描述
9. 调用系统命令(system) ###mspaint是画图的命令,回车后可直接调用画图工具(calc计算机)
在这里插入图片描述
10.路径操作( path)### abspath 把相对路径转成绝对路径

在这里插入图片描述
七.模块和包

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

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

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
2.路径的添加

(1)name 代表模块的名字

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

在这里插入图片描述
在这里插入图片描述

2.包

所谓的包,就是存放多个模块的文件夹,并且其中会有__init__.py 这样的文件。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南风和云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值