学习Python的第八节课(文本文件、二进制文件、文件格式转换)

一、文本文件

- 文件是存储在外部介质上一组相关信息的集合。
 - 根据文件数据的组织形式数据文件格式分为文本文件和二进制文件。
 - 文件的基本操作包括打开、判断文件存在否、修改、关闭、删除、复制、创建目录、遍历目录等。
 - 文件的打开与关闭是建立程序中的文件对象和文件的一种关联关系。文件的格式、类型不同,它的打开方式和读写方式也不同。
1、文本文件概述
文本文件也称为ASCII文件,存储的是常规字符串,字符串中每个字符对应一个字
   节。例如,数5678的存储形式为ASCII码:00110101 00110110 00110111 
   00111000。

注:

- 常规字符串是指记事本或其他文本编辑器能正常显示、编辑且能够直接阅读和理解的字符串,如英文字母、汉字、数字字符串。
 - 文本文件由若干文本行组成,通常每行以换行符结尾。
2、文本文件基本操作

文本文件操作的基本流程有两种形式:

Python将文件变为二进制 python将文本转化为二进制_Python将文件变为二进制


注:

Python提供了一种便于管理上下文环境的with机制。在实际开发中,读写文件应优
先考虑使用上下文管理语句with,关键字with可以自动管理资源,不论因为什么原因
跳出with块,总能保证文件被正确关闭。
(1)创建文件对象方式

Python内置了文件对象,通过open()函数即可以指定模式打开指定文件或创建文件对象。格式如下:

文件对象名-open(文件名[,默认"r"模式[缓存区, encoding="编码")]])
或
with open(文件名,[,默认"r"模式[缓存区, encoding-"编码")]]) as 文件对象名:

Python将文件变为二进制 python将文本转化为二进制_二进制文件_02

缓冲区指定了读写文件的缓存模式:数值0表示不缓存,数值1表示缓存,大于1表示缓冲区大小,默认值是缓存模式。

Python将文件变为二进制 python将文本转化为二进制_python_03

Python将文件变为二进制 python将文本转化为二进制_Python将文件变为二进制_04

(2)写文件

文件的写(write)操作是向文件写入数据,即将内存数据输出到磁盘文件。

f=open('mytext.txt', 'w')  #以写方式,若文件不存在则新建

打开文件后,可以使用其实例方法write(/witelines(),写入字符串到文本文件。可以使用实例方法flush强制把缓冲的数据更新到文件中。

- fp.write(s)#把字符串s写入到文件fp
 - fp.writelines(lines)#依次把列表lines中的各字符串写入到文件fp
 - fp.flush()#把缓冲的数据更新到文件中

Python将文件变为二进制 python将文本转化为二进制_字符串_05

(3)读文件

文件的读(read)操作就是从文件中取出数据,再输入到计算机内存储器。

以只读文件打开不存在的文件就会报错

Python将文件变为二进制 python将文本转化为二进制_Python将文件变为二进制_06

打开文件后,可以使用下列实例方法读取字符数据。

- fp.read(:从f中读取剩余内容直至文件结尾,返回一个字符串;
 - fp.read(n):从fp中读取至多n个字符,返回一个字符串;如果n为负数或None,读取直至文件结尾;
 - fp.readline():从fp中读取1行内容,返回一个字符串;
 - fp.readlines():从p中读取剩余多行内容,返回一个列表。

Python将文件变为二进制 python将文本转化为二进制_python_07

Python将文件变为二进制 python将文本转化为二进制_字符串_08

(4)关闭文件

当对文件内容操作完以后,一定要关闭文件对象,这样才能保证所做的任何修改都确实被保存到文件中。如果是以with形式打开的文件,则不需要手动关闭。格式如下:

文件对象.close()
(5)文件定位

可以通过文件指针来控制文件开始读写的位置,功能是更改当前的文件位置。格式如下:

seek(offset[参考点,whence=0])

偏移参数指示要移动的字节数,移动时以设定的参考点为基准;
参考点指定移动的基准位置,Whence分别为0,1,2 。 0表示在文件开始位置;1表示当前位置;2表示文件末尾。

此外,文件指针还有几个常用的函数。语法如下:
①判断文件指针是否可操作

文件对象.seekable( )

②返回文件的当前位置

文件对象.tell( )

Python将文件变为二进制 python将文本转化为二进制_python_09

二、二进制文件

二进制文件和文本文件有着不同的编码方式,且除了可以进行文本文件的基本操作以外,二进制文件还有相应的序列和反序列操作。

1、 二进制文件概述

二进制文件是按二进制的编码方式来存放文件的。例如,数5678的存储形式为: 00010110 00101110只占二个字节。无法用记事本或其他普通文本处理软件进行编辑,通常也无法直接阅读和理解,需要使用专门的软件进行解码后读取、显示、修改或执行。常见的如图形图像文件、音视频文件、可执行文件、资源文件、各种数据文件、各类Office文档等都属于二进制文件。系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。 因此也把这种文件称作“流式文件”。

2、文本文件基本操作
二进制文件的操作包括基本读写操作、序列化和反序列化操作。
(1)基本操作
二进制文件的操作流程与文本文件一样。需要注意的是,使用open()函数打开或创建一个二进制文件时,需要指定打开模式为‘b’。二进制文件的创建、读写、关闭操作和文本文件的操作一样。

例1 二进制文件写入数据示例。

Python将文件变为二进制 python将文本转化为二进制_二进制文件_10


例2 二进制文件读取数据示例。

Python将文件变为二进制 python将文本转化为二进制_文本文件_11


例3 随机文件访问示例。

Python将文件变为二进制 python将文本转化为二进制_python_12

三、文件格式转换

1、了解CSV文件概念

CSV文件是逗号分隔值文件格式(Comma-Separated Values,CSV),有时也称为字符分隔值。其文件以纯文本形式存储表格数据(数字和文本),CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。

CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。最广泛的应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的。

2、掌握CSV和TXT文件转化
(1)CSV文件读入与显示

Python将文件变为二进制 python将文本转化为二进制_二进制文件_13

(2)EXCLE文件转化为CSV格式

Python将文件变为二进制 python将文本转化为二进制_二进制文件_14

(3)读TXT文件


Python将文件变为二进制 python将文本转化为二进制_文本文件_15


Python将文件变为二进制 python将文本转化为二进制_字符串_16



Python将文件变为二进制 python将文本转化为二进制_二进制文件_17

(4)读TXT文件——>CSV文件

Python将文件变为二进制 python将文本转化为二进制_python_18