当前课程知识点:计算机基础与应用 > 第12章 文件 > 12.1.4 读取数据和关闭文件 > 12.1.4 读取数据和关闭文件修改
大家好
前一节中我们在文件中写入了内容
现在我们接着学习如何从文件中读取数据
根据文件打开方式的不同
可以对文件进行不同地读取操作
当文件以文本文件方式打开时
采用当前计算机使用的编码
按照字符串方式读取文件内容
当文件以二进制文件方式打开时
是按照字节流方式读取文件内容
Python提供了3个常用的文件内容读取方法
read方法是从文件中读取整个文件内容
如果给出n值
则读取前 n个字符串或字节流
readline方法是从文件中读取一行内容
如果给出n值
则读取该行中前n个字符或字节流
readlines方法是从文件中读取所有行
以每行为元素形成一个列表
如果给出n值
则读取前n行
下面我们通过例子让大家理解
这三种不同的读取文件的方法
本例是通过用户输入文件路径
以文本文件方式打开该文件
分别以read readline和readlines方法
读取文件内容并打印
程序运行结果如下
在第一行
当我们在提示信息后面输入
要打开的文件路径
回车后
第2至5行是read方法运行的结果
read方法是读出整个文件的内容
并赋值给了str变量
然后print语句打印输出了
str变量里的全部内容
即整个文件中的所有内容
接下来程序通过fn.seek(0)命令
把文件指针移动到文件开头
使用readline方法只读到了文件第一行的内容
循环也就只执行了一次
所以我们看到这次只打印输出了
文件中第一行的内容 北京
接着我们通过fn.seek(0)命令
把文件指针又移动到文件开头
使用readlines方法以列表的方式
读取了文件的全部内容
for循环每次取出列表中的一行内容打印输出
所以我们看到这次
打印输出了文件中每一行的内容
而且由于print语句每次执行
都会自动产生换行操作
所以我们看到的输出结果
每行之间多出了一个空行
文件使用结束后我们要关闭它
释放对文件的控制
关闭文件的方法有两种
一 使用close方法关闭文件
例如前面所有的示例中
不管用何种方式打开了文件
在对该文件的相关操作完成后
最后都用fn.close()命令关闭了该文件
二 使用上下文管理器来关闭文件
有时 当我们使用close方法来关闭文件时
如果程序存在错误
会导致close语句未执行
文件将不会关闭
没有妥善地关闭文件
可能会导致数据丢失或受损
而有时
如果在程序中过早地调用close方法
当需要使用文件时它又已经关闭
从而无法访问
这也会导致更多的错误
所以
并非在任何情况下都能轻松确定
关闭文件的恰当时机
因此
我们可以使用上下文管理器来解决以上问题
上下文管理器用于规定某个对象的使用范围
一旦进入或者离开该使用范围
则会有特殊操作被调用
对于文件操作来说
我们需要在读写结束时关闭文件
而上下文管理器就可以实现
在不需要文件的时候
自动关闭文件
本例就使用了上下文管理器
程序中调用了open函数
但没有调用close方法
这样我们可以只管打开文件
并在需要时使用它
Python会在合适的时候自动将其关闭
上下文管理器是用缩进来表达
文件对象的打开范围
其有隶属于它的程序块
当隶属的程序块执行结束时
也就是语句不再缩进时
它就会自动关闭文件
在程序最后
我们调用了fn.closed的属性
来验证文件是否已经关闭
大家看到程序运行结果为true
说明文件已经被关闭了
下面我们小结一下
通过这一节的学习
我们学会了使用python语言来创建文件
把数据写入文件
从文件中读取数据
最后关闭文件这一系列的操作
用Python来操作文件是Python语言中
非常常见和有用的操作
希望同学们好好掌握本节内容
本节课内容就到这里
谢谢大家
-1.1 计算思维概述
-1.2 计算思维的定义、特征、基本原理和本质
-1.3 计算思维的基本方法及应用简介
-2.1 计算机发展历程
-2.2 计算机系统组成
-2.3 计算机基本工作原理
-2.4 微型计算机硬件组成
-2.5 计算机网络简介
--2.5 计算机网络课后作业
-第2章 课后作业
-3.1 信息表示与计算机中的数制
-3.2 计算机不同数制间的转换
-3.3 计算机中数据的表示
-3.4信息编码
--3.4信息编码
--3.4信息编码
-第3章 课后作业
-4.1 操作系统概述
-4.2 Windows10的基本操作
-4.3 Windows10的文件管理
-第4章 课后作业
-5-1.1Word 2010的操作界面与文档编辑
-5-1.2 Word 2010的文档排版与图文混排
-5-1.3Word 2010的表格操作
-5-1.4Word 2010 其他功能和页面设置
--5.1.4Word 2010 其他功能和页面设置--沙莉
-5-2.1Power Point 2010 基础操作
-5-3.1Excel 2010概述
-5-3.2Excel 2010 公式和函数
-5-3.3Excel 2010 工作表的格式化
-5-3.4 Excel 2010数据的图表化
-5-3.5Excel 2010 数据管理和打印设置
-第5章 Word课后作业
-第5章 Excel课后作业
-第5章 PowerPoint课后作业
-6.1 程序设计基本方法
-6.2 Python语言的发展和特点
-6.3 Python语言开发环境配置
-6.4 程序的基本编写方法
-第6章 课后作业
-7.1Python程序基础
-7.2Python程序基本语法元素
-7.3turtle库的基本命令
--第7章 课后作业
-8.1程序的控制结构
-8.2程序的分支结构
-8.3程序的循环结构
-8.4程序的异常处理
-第8章 课后作业
-9.1基本数据类型
-9.2数据类型的运算
-9.3字符串数据类型
-第9章 课后作业
-10.1 集合类型-集合
-10.2 序列类型
-10.3 列表
--10.3 列表
--10.3 列表
-10.4 元组
--10.4 元组
--10.4 元组
-10.5 映射类型 -字典
-第10章作业
-11.1 函数的概念和分类
-11.2 函数的定义和调用
-11.3 函数的参数
-11.4 函数的返回值
-11.5 变量的作用域
-第11章作业
-12.1.1 文件概述
-12.1.2 打开或创建文件
-12.1.3 数据写入文件
-12.1.4 读取数据和关闭文件
-12.2 CSV文件
-12.3.1 编辑Excel工作簿
-12.3.2 编辑Excel工作表
-12.3.3 编辑Excel单元格
-12.4.1-5 图像文件
-12.4.6-7 Image的常用属性、函数和方法
-第12章作业
-13.1 科学计算的含义
-13.2 方程问题的求解
-13.3 微积分问题的求解
-13.4 数学函数的可视化
-第13章作业