python之路 第七章 文件操作——文件的编码、文件的读取、open函数、读操作相关方法、文件的追加

发布于:2023-01-14 ⋅ 阅读:(199) ⋅ 点赞:(0)

目录

第七章 文件操作

01 文件的编码

02 文件的读取

open()函数

读操作相关方法

​总结

小练习

04 文件的追加

05 综合案例


第七章 文件操作

01 文件的编码

       我们知道,计算机实际上只能识别0和1,那么我们丰富的文本文件是怎么被计算机所识别的呢?

       在程序中,无论是我们所输入的文字还是图片视频,都会被转化为无数的0或1,这是因为使用了编码技术(密码本)将内容翻译成0和1存入后的结果。

       编码技术即:翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译回可识别内容。

       在计算机中,有许多可用编码:UTF-8、GBK、Big5等等,不同的编码,将内容翻译成的二进制也是不同的。因此,除非有特殊需求,一律使用全球通用的编码格式UTF-8的格式进行编码即可。


02 文件的读取

       在日常的生活中,文件操作主要包括打开、关闭、读和写。

open()函数

       可以打开一个已经存在的文件,或者是创建一个新的文件。

#其语法如下
open(name,mode,encoding)
#name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)
#mode:设置打开文件的模式(访问模式):只读、写入、追加等
#encoding:编码模式(推荐使用UTF-8)

#注意:此时的'f'是'open'函数的文件对象,对象是Python中的一种特殊的数据类型,拥有属性和方法,可以使用对象. 属性或对象. 方法对其访问,后续面对对象课程会给大家进行详细的介绍。

mode常用的三种基础访问模式
格式 应用
r 一直都方式打开文件文件的指针会存放在文件的开头,这是默认模式。
w

打开一个文件只用于写入。

如果该文件已存在,就打开文件,并从头开始编辑原有内容会被删除,如果该文件不存在创建新文件。

a

打开一个文件用于追加。

如果该文件已存在新的内容会被写入到已有内容之后,如果该文件不存在,创建新文件进行写入。

读操作相关方法

1.read()

语法:文件对象. read(num)

功能:num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中的所有数据。

 #注意:系统会自动记录上一次读取所结束的位置,下一次读取时从上一次结束的位置开始。

2.readlines()

语法:文件对象. readlines()

功能:readlines 可以按照行的方式把整个文件中的内容进行一次性读取, 并且返回的是一个列表,其中每一行的数据为一个元素。

 3. readline()

语法:文件对象. readline()

功能:前面已经知道redlines是按照行的方式读取全部内容, 那么同样的redline就是一次读取一行的内容。

 4. For循环读取文件行

语法:for line in 文件对象

 5. 文件的关闭

语法:文件对象. close()

6. with open

语法:with open(文件对象) as f

功能::可以通过with open语句块中对文件进行操作,并且在操作完成后自动关闭文件避免遗忘掉close方法。

总结

序号 语法 功能
1 文件对象. read(num) 读取文件中一定字节数的数据或者读取全部的数据(取决于num的有无)
2 文件对象. readlines() 按照行的方式把整个文件中的内容进行一次性读取, 并且返回为一个列表,其中每一行的数据为一个元素
3 文件对象. readline() 一次读取一行的内容
4 for line in 文件对象 利用for循环读取文件中的每一行
5 文件对象. close() 关闭文件
6 with open(文件对象) as f 简化操作,可以直接打开文件并且在最后省去close语句

小练习

复制一下文件并保存

2 1 2 5 6 8 9 7 4 1

4 5 5 8 6 4 4 5 6 9

7 5 6 8 4 1 2 5 3 4

4 5 6 8 4 7 4 2 5 6

通过文件读取操作,读取此文件,并统计5出现的次数


03 文件的写入

        通常我们对文件的操作只有打开,读取,写入,关闭,我们已经学习了打开,读取,关闭,剩下的就只有写入了。同时,当我们写入新的内容后,我们还需要对文件进行刷新。所以本节我们主要学习文件的写入和内容刷新两种操作。

1.写入

语法:文件对象. write("写入内容")

2. 刷新

语法:文件对象. flush()

#注意:直接调用write写入时,内容并未真正写入文件,而是会积攒在程序的内存中称之为缓冲区。只有在调用flush刷新后内容才会真正的写入文件。将内容暂时储存在缓冲区的原因是避免频繁操作硬盘导致效率下降。

演示

此时文件夹中没有文件

输入代码段并运行

可以看到并没有写入

当加入flush语句
当加入flush语句

可以看到文档内容写入了

#注意:f. close()自带flush()功能


04 文件的追加

         文件的追加操作与文件的写入方法基本一致,只是将新加的内容写在文件末尾,即将w格式更换为a模式。

          在a模式下,文件不存在会创建文件,文件存在则会在文件最后追加并写入内容。

第一次追加
再次追加

05 综合案例

本文含有隐藏内容,请 开通VIP 后查看