当前位置:
文档之家› Python电子教案文件和数据格式化
Python电子教案文件和数据格式化
文件的打开关闭
• Python通过解释器内置的open()函数打开一个文件,并实现该文件 与一个程序变量的关联,open()函数格式如下:
• <变量名> = open(<文件名>, <打开模式>) • • open()函数有两个参数:文件名和打开模式。文件名可以是文件 的实际名字,也可以是包含完整路径的名字
文件的打开关闭
• 打开模式用于控制使用何种方式打开文件,open()函数提供7种基本 的打开模式,如表7.1所示
文件的打开关闭
打开模式使用字符串方式表示,根据字符串定义,单引号或者双引号均可。上述打开模式中,‘r’ 、‘w’、‘x’、‘b’可以和‘b’、‘t’、‘+’组合使用,形成既表达读写又表达文件模式的方式。 例如,open()函数默认采用'rt'(文本只读)模式,读入程序所在目录中7.1.txt文件: textfile = open('7.1.txt', 'r') 或 textfile = open('7.1.txt') 读取一个二进制文件,如一个图片、一段视频或者一段音乐文件,需要使用文件打开模式'rb'。例 如,打开一个名为'music.mp3'的音频文件: binfile = open('music.mp3', 'rb') 文件使用结束后要用close()方法关闭,释放文件的使用授权,该方法的使用方式如下: <变量名>.close()
文件概述
• 二进制文件直接由比特0和比特1组成,没有统一字符编码,文件内部数据的组 织格式与文件用途有关。二进制是信息按照非字符但特定格式形成的文件,例如 ,png格式的图片文件、avi格式的视频文件。二进制文件和文本文件最主要的区 别在于是否有统一的字符编码。二进制文件由于没有统一字符编码,只能当作字 节流,而不能看作是字符串。 • 无论文件创建为文本文件或者二进制文件,都可以用“文本文件方式”和“二 进制文件方式”打开,但打开后的操作不同。
文件的打开关闭
• Python对文本文件和二进制文件采用统一的操作步骤,即“打开-操作-关闭” ,如图7.1所示。
文件的打开关闭
• 操作系统中的文件默认处于存储状态,首先需要将其打开,使得当 前程序有权操作这个文件,打开不存在的文件可以创建文件。打开后 的文件处于占用状态,此时,另一个进程不能操作这个文件。可以通 过一组方法读取文件的内容或向文件写入内容,此时,文件作为一个 数据对象存在,采用<a>.<b>()方式进行操作。操作之后需要将文件关 闭,关闭将释放对文件的控制使文件恢复存储状态,此时,另一个进 程将能够操作这个文件。
文件的读写
• 当文件被打开后,根据打开方式不同可以对文件进行相应的读写操作。注意, 当文件以文本文件方式打开时,读写按照字符串方式,采用当前计算机上使用的 编码或指定编码;当文件以二进制文件方式打开时,读写按照字节流方式。
•
Python提供4个常用的文件内容读取方法
文件的读写
• 微实例7.2:文本文件逐行打印。 • 用户输入文件路径,以文本文件方式读入文件内容并逐行打印,代码如下:
文件的读写
如果程序需要逐行处理文件内容,建议采用上述代码中2-5行组成的格式,如下: fo = open(fname, "r") for line in fo: # 处理一行数据 fo.close()
文件的读写
• Python提供3个与文件内容写入有关的方法,如表7.3所示。
• 微实例7.3:向文件写入一个列表。 • 向文件写一个列表类型,并打印输出结果,代码如下:
文件的读写
>>>请输入要写入的文件: test.txt >>>
文件的读写
• 可以看到,程序并没有输出写入的列表内容。在Write程序同目录找到test.txt文 件,打开可以看到其中的内容是:
• 列表ls内容被写入文件,但为何5-7行代码没有将这些内容打印出来呢?这是因 为文件写入内容后,当前文件操作指针在写入内容的后面,5-7行代码从这个 指针开始向后读入并打印内容,被写入的内容却在指针前面,因此未能被打印 出来。为此,可以在写入文件后增加一条代码fo.seek(0)将文件操作指针返回到 文件开始,即可显示写入的内容,代码如下。
• 程序首先提示用户输入一个文件名,然后打开文件并赋值给文件对象变量fo。 文件的全部内容通过fo.readlines()方法读入到一个列表中,列表的每个元素是文件 一行的内容,然后通过for…in方式遍历列表,处理每行内容。
文件的读写
• 上述代码尽管完成了微实例7.2的要求,但存在一些缺点:当读入 文件非常大时,一次性将内容读取到列表中会占用很多内存,影响程 序执行速度。一个合理的方法是逐行读入内容到内存,并逐行处理。 这可以通过一个简单的方法解决。Python将文件本身作为一个行序列 ,遍历文件的所有行可以直接这样完成
文件的读写
程序执行结果如下:
PIL库的使用
第7章 文件和数据格式化
文件的使用
文件概述
• 文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容。概念上 ,文件是数据的集合和抽象,类似地,函数是程序的集合和抽象。用文件形式组 织和表达数据更有效也更为灵活。文件包括两种类型:文本文件和二进制文件。 • 文本文件一般由单一特定编码的字符组成,如UTF-8编码,内容容易统一展示 和阅读。大部分文本文件都可以通过文本编辑软件或文字处理软件创建、是存储在磁盘上的长字符 串,例如一个txt格式的文本文件。
文件概述
• 微实例7.1:理解文本文件和二进制文件的区别。 • 首先,用文本编辑器生成一个包含“中国是个伟大国家!”的txt格式文本文件 ,命名为7.1.txt。分别用文本文件方式和二进制文件方式读入,并打印输出效果 ,代码如下:
文件概述
• 输出结果为:
• 可以看到,采用文本方式读入文件,文件经过编码形成字符串,打 印出有含义的字符;采用二进制方式打开文件,文件被解析为字节( byte)流。由于存在编码,字符串中的一个字符由2个字节表示。