当前课程知识点:计算思维与人工智能基础 > 第三部分:python基础 > 第七章:文件操作 > 7.1文件的打开与读取
大家好
我们下面给大家介绍第七章文件的操作
这章我们主要给大家介绍文件的打开
读取
写入以及CSV文件的特殊操作
Python语言通常使用数据文件来实现高效的输入输出操作
那么我们看在Python中的文件的分类是怎样的呢
首先我们来看一下标准的输入文件和标准的输出文件
在Python中呢
他是通过input的函数和print函数的实现的
那其实我们的标准的输入就是我们的键盘
标准的输出就是我们的显示器
那么文件如果从编码方式来分的话
那么有ASCII文件和二进制文件
ASCII文件也就是我们俗称的文本文件
那他的每个字符呢存储一个字节
那二进制文件是通过二进制编码来进行存储的
从文件的组织方式来分的话
它又分为流式文件和记录式文件
那么流式文件的他输出呢他文件的本身的这种换行啊
这分隔符是不起作用
那么它主要是通过外面的控制来控制我们的文件的输出
称之为为流式文件
另外一种呢就是文件它本身是由记录组成的
由一条记录一条记录
每个记录有不同的属性这样的结构组成的
如果从文件的存储方式来分的话
它又分为顺序存储文件和随机存储文件
那么顺序存储文件存储的就是按照他的逻辑顺序
来进行存取的
随机呢那我们可以什么呀
指到不同的地方
也就是说可以随机存取这个文件
文件的打开
在Python中文件的打开呢有两种方式
一种是open方式,一种是with open方式
他们来看方式一
那么通过open后面跟我们的文件名
在文件名前面可以带绝对路径相对路径啊
那么打开方式是读 写
还是读写方式
这里面的中间的就是我们其实是通过我们这个
赋给这个变量名
变量名下面的操作啊你对他进行的文件对象的操作
最后需要有一个
对我们这个变量也就文件打开是需要解锁
通过close这个方法来进行关闭
另外的话with open跟前面一样的S给一个变量
里面的是我们的对文件的操作
那么这个操作的过程中结束以后呢
跳出with以后它就自动关闭啊
在这个打开模式的话
我们这个地方都是简写
通常是这样子
那模式呢其实打开的有多种参数的
除了这个模式这个参数还有什么呀
buffering编码方式
还有这个errors就是我们的错误的这个等级呀
还有这个换行的方式啊
我们知道一下就行
常用的打开模式就是我们这个读啊,写啊,这样的模式
那么对我们的读写模式呢
我们需要比较清楚的在这给大家说一下
那么打开文件的方式呢我们看这个
我们通过这个图来更好的理解下
我们打开一个文件
它是什么样的方式
可以有三种方式
一种是读的方式
一种是写的方式
还有一种读写方式
读的方式呢
就是通过r来去表示
那么r读的时候呢
那也就说只能对文件进行读的操作
那么这个指针是指向文件的开头
那么还有另外一种就是写的方式
那么写的方式呢
是通过我们用W或者是a来表示
写的方式是截断也就说是覆盖还是不覆盖原有的文件
如果没有文件呢
是可以创建啊
如果截断的方式的话
也就说这个是覆盖掉的时候写
也就说这个指针是在文件的头
那么另外的话否的话
那就a的时候
那时我们叫什么不截断的这样的写
其实就是一个追加写啊
这个前面我把他叫覆盖写这个追加写
那么指针的就会指到文件的尾部追加上去
我们来看读写方式
读写方式也会有一个截断
那么截断就是覆盖
我们这个也跟前面这个W是一个相似的
也就是说他这个指针是会指到文件的开始的位置
那么这个是我们相当于也是一个什么覆盖的读写
可读可写
那么另外的话如果被截断的话
他只是指针的位置
如果是读的话
读写的是读的话
那么指针的位置就一定是在文件的开始
那么如果是读写的追加写的时候
它的指针也是在尾部
那么对照的上面的这个表我们可以看一下
r的时候他是就这样的方式
我们来看他是读
然后指针在开始
那么这个写的时候呢
它是写的方式的时候它是写
然后如果没有是创建
然后这就是要把它覆盖掉
指针位置是在开头
我们追加的方式是什么呀
是写
然后呢是创建位置在尾部
那么读写的时候是读加号的时候读
然后那是写
指针在开始
如果是写
读写的写
读写的时候
W加号的时候读写创建覆盖在开始的位置
追加写的时候是是读血
然后他可以创建
但是指针是在尾部的
这个需要大家注意
那么在这个模式后面的通常会带一个t和b
t的时候指的是文本文件
通常我们就缺省其实r就打开的是文本文件
那么带着rb或者是wb的时候打开的是二进制文件
我们来看我们文件的打开是怎么样如何打开和读取的
那么在文件读取的时候
我们会用到三个函数
也或者说我们对象的三个方法
把文件打开可以看成一个对象
就一个是read函数
一个是readline和一个readlines
read就是打开读全部的文件
我们看这个打开的方式
我们open这就是我们当前的这个我们这个文件的什么呀
当前的文件夹下面有一个目录是date
下面会有一个example1这样的一个txt文件读的方式打开
然后我们通过这个对象f.read我们就是读取全部的文件
然后进行关闭
读的文件的就会通过print语句把的输出
读入一行readLine就是读入一行
我们打开方式可以弄另外一个
我们with open
还是这个另外一个文件在这个目录下
可以读出他的一行
也可以是读取所有的行
把所有的行读出来
那么每一行为一个元素
这样的他是读出来的整个的是一个列表
有多个元素组成的列表
这样的反馈这个列表的时候
我们输出的时候就可以通过前面对于列表的输出
通过for...in这样的结构来进行处理
我们也看这段代码
我们也是打开这样的一个txt的文件
读出来的时候通过f.readlines是这样读出来
读出来他是一个列表
那我们这个列表呢
就可以通过for...in把他输出
然后open就需要有个关闭
with open是不要用这个它可以自动关闭
那么这个就是我们如何打开文件进行读取
我们在这jupyter下看一下这几个代码的执行结果
我们来看这个文件读取前面讲read是全部读取
我们可以看到这个文件
我们把它全部都读出来
是一个example这个文件我们全部读出来
我们可以看他有三句输出
这就是全部
如果我们按行读出来呢
我们用with open这样的方式
这是我们的文件
然后呢
我们print它
readline这样的读出方式
那我们应该就readline的话只能输出第一行
我们可以看得到这是两种读出方式
那么一个是通过read全部读出来
然后readline读出一行
我们再看看这个
那么这个是可以r t的效果是一样的
通过这样open通过open和close来打开文件操作
然后结束
这是我们执行的过程
还是这个example所以他的结果是一样的
下面我们看一下readlines的使用
那我们首先看这个是把文件读进来
还是我们的example.txt
然后呢这个readlines呢是把我们文件里的每一行
当成一个元素读入到一个列表中
所以呢我们就可以通过for...in的方式来输出他
那么这是列表
通过for...in把它输出每一个元素
我们看他的结果是什么样子的
就是我们刚才example的三句话
这就是我们readlines的用途
-章测试
-章测试
-第一章:python简介
--章测试
-第二章:编码规范
--2.2常量和变量
--章测试
-第三章:数据类型
--章测试
-第四章:基本运算
--4.2比较运算符
--4.3逻辑运算符
--4.4位运算符
--章测试
-第五章:程序控制结构
--5.1顺序结构
--5.2条件结构
--5.3循环结构
--5.4跳转结构
--5.5异常处理
--章测试
-第六章:函数、模块与面向对象
--6.2面向对象
--6.4模块与包
--章测试
-第七章:文件操作
--7.2文件的写入
--章测试
-第八章:python生态库
--章测试
-第九章:TensorFlow基础
--章测试
-第十章:实例分析与实践
--章测试
-第十一章:人工智能在自然语言中的应用
--章测试