目录

第七章 文件操作

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

打开一个文件用于追加。

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

python uri解码 python open解码_python

读操作相关方法

1.read()

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

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

python uri解码 python open解码_python uri解码_02

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

2.readlines()

语法:文件对象. readlines()

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

python uri解码 python open解码_pycharm_03

 3. readline()

语法:文件对象. readline()

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

python uri解码 python open解码_数据_04

 4. For循环读取文件行

语法:for line in 文件对象

python uri解码 python open解码_数据_05

 5. 文件的关闭

语法:文件对象. close()

6. with open

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

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

python uri解码 python open解码_pycharm_06

总结

序号

语法

功能

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刷新后内容才会真正的写入文件。将内容暂时储存在缓冲区的原因是避免频繁操作硬盘导致效率下降。

演示


python uri解码 python open解码_python_07

此时文件夹中没有文件

python uri解码 python open解码_pycharm_08

输入代码段并运行

python uri解码 python open解码_python uri解码_09

可以看到并没有写入

python uri解码 python open解码_python uri解码_10

当加入flush语句

python uri解码 python open解码_pycharm_11

当加入flush语句

python uri解码 python open解码_python uri解码_12

可以看到文档内容写入了

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


04 文件的追加

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

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


python uri解码 python open解码_pycharm_13

第一次追加

python uri解码 python open解码_python uri解码_14

再次追加


05 综合案例