6.5 二进制文件
6.5.1 教学目标
文件的本质是二进制字节数据,即所有的文件都是二进制文件,文本文件只是在读写时
做了编码转换,教学目标是掌握二进制数据的读写操作。
6.5.2 二进制文件
什么是二进制文件,实际上所有文件都是二进制文件,因为文件的存储就是一串二进制
数据。文本文件也是二进制文件,只不过存储的二进制数据能通过一定的编码转为我们认识
的字符而已。
二进制文件在打开模式中使用"b"来表示,模式如表 6-5-1 所示。
只读打开一个二进制文件,只允许读数据。如文件存在,则打开后
可以顺序读;如文件不存在,则打开失败。
只写打开或建立一个二进制文件,只允许写数据。如文件不存在,
则建立一个空文件;如文件已经存在,则把原文件内容清空。
追加打开一个文本文件,并在文件末尾写数据。如文件不存在,则
建立一个空文件;如文件已经存在,则把原文件打开,并保持原内
容不变,文件位置指针指向末尾,新写入的数据追加在文件末尾。
读写方式打开一个二进制文件,允许读也允许写数据。如文件存在,
则打开后文件指针在开始位置;如文件不存在,则打开失败。
读写方式打开一个二进制文件,允许读也允许写数据。如文件不存
在,则就创建该文件;如文件存在,则打开后清空文件内容,文件
指针指向 0 的开始位置。
读写方式打开一个二进制文件,允许读也允许写数据。如文件不存
在,则就创建该文件;如文件存在,则打开后不清空文件内容,文
件指针指向文件的末尾位置。
表 6-5-1
二进制文件认为数据都是字节流,因此二进制文件不存在编码的问题,只有文本文件才
有编码问题。因为二进制文件时字节流,因此也不存在 readline,readlines 读一行或者多行的
操作函数,一般二进制文件值使用 read 函数读取,使用 write 函数写入。
6.5.3 文件本质
文件的本质是二进制字节数据,即所有的文件都是二进制文件,文本文件只是在写时把
文本按一定编码转为二进制数据进行存储,在读时先读出二进制数据,再通过一定的编码转
为文本。
例 6-5-1: 文本文件的二进制数据
def writeFile():
fobj = open("c:\abc.txt", "wt")
fobj.write("abc 我们")