内容正文:
《Python基础案例教程》(微课版)
第6章 Python文件操作
第6章 Python文件操作
编写程序解决问题,一般面对的问题是多样的,有些是关于计算的,有些则需要实现分析统计的功能,对于一些需要处理大量数据的问题,为了方便快速读入和保存信息,可以采用文件操作的方式,直接从文档中获取内容,也可以把处理结果直接保存到文档中。
Python语言中提供了很多文件读取和写入的方式,本章我们将重点学习如何从文本文档中获取文本信息,以及如何将文本信息保存到文档中。
教学内容
01 文件读入
02 文件输出
目录
CONTENTS
第6章 基本数据类型
6.1.1 打开文件
程序中要读取外界文件中的文本内容,需要先获得读取的权限,即要先打开文件。此处的“打开文件”是指:根据程序指令,系统自动打开的文件通道,并不是指使用者手动打开文件。
本课知识点
打开文件
从外界读取指定文件内容时,需要在程序中先调用打开指定文件的命令打开文件,然后才有读取文件内容的权限,格式用法如下。
其中“filename.txt”为要打开文件名及文本类型,需要跟源程序在同一个文件夹中,文本格式可以是.txt,也可以是.doc等; “r”表示,打开的文件只有读取权限。
“之乎者也都不识,如今嗟叹始悲吟”,之、乎、者、也为文言文中常用的四个语气助词。故在古代,之乎者也指读书人所应具备的基本能力。古人赋诗作文,多会用到这些助词,例如唐代杰出的文学家韩愈,其文章《师说》,对大家学习仍有深刻的指导意义,“人非生而知之者,孰能无惑?”你能编写程序,实现统计《师说》一文中,“之、乎、者、也”四个词出现的次数?
案例分析
案例1 词语统计
6.1.1 打开文件
案例分析
案例1 运行结果
6.1.1 打开文件
本课知识点
open()打开文件类型
Python中,open()函数不仅能打开文本类型的文件,还可以打开图片、音视频等其他类型的文件。它们的打开模式略有不同,用“r”的模式读取文本内容,对于其他类型的文件,如图片等,它们的读取需要以二进制格式读取,打开模式需是“rb”,如:open(‘test.jpg’,’rb’),读取出来后也是二进制数据。
with语句
使用with语句打开文件,从缩进格式上也能看出,后面语句块的内容均有缩进,说明在with后面的代码出现异常时,会自动返回,及时关闭文件,清理资源等操作,所以with语句极大的简化了工作,这对代码的优雅性是有极大帮助的。
6.1.1 打开文件
Python引入了with语句,它可在程序需要的时候自动关闭已打开的文件。如下图程序第3行,在open之前加上with语句,可省略后面close,使文件自动关闭。程序优化如下:
案例改进
6.1.1 打开文件
案例练习
圆周率PI前10000位数存放在文件“PI.txt”中,查询是否包含你出生日期的信息,即假设你的生日是4月12日,可以查询0412是否包含中PI值中。试编写程序完成查询。
6.1.1 打开文件
6.1.2 读取文件
本课知识点
Python语言中,若需要打开并读取指定文件的内容,可以编写程序打开指定路径(文件在计算机中保存的位置)文件,读取文件时,可以设置逐行读取内容,或根据需要读取文件的部分内容。
Python语言中,文件打开后,可用readlines()函数逐行读取文件内容,读取的结果以列表类型存储,文件中的每一行内容,就是列表中的一个元素。
在流感高发期,学校组织对学生一个月的体温监控,学生需要每天记录自己的体温,最终形成“**同学体温记录表.txt”文档,以班级为单位上报到学校,如图。学校现在需要对个别同学体温数据进行抽查,检测其是否有连续3天发热的情况(36.7以上视为发热),以李明同学为例,请编写程序,实现对李明同学的体温数据分析,输出分析结果,即是否有连续三天发热,如果有,输出连续发热的最长天数。
案例分析
案例2 词语统计
6.1.2 读取文件
案例分析
案例2 运行结果
6.1.2 读取文件
本课知识点
Python语言中可根据不同的需要采用不同的读取方式,具体方法实现如下表6.1所示。
绝对路径:绝对路径是文件在硬盘上真正的路径,例如:C:\xyz\test.txt 代表了test.txt文件的绝对路径。
相对路径:相对路径就是指相对于程序文件(.py文件)的路径,可以直接指定到其父亲文件夹或子文件夹。如在同一个文件夹内的文件就可以直接打开,不需要指定它的位置。
6.1.2 读取文件
若体温表文件跟源程序不在同一个位置(同一文件夹内),不能直接使用open(“李明同学体温记录表.txt”,r)打开文件,否则会提示FileNotFoundEr