二进制文件在打开模式中使用"b"来表示
文件使用方式意 义
rb :只读打开一个二进制文件,只允许读数据。如文件存在,则打开后 可以顺序读;如文件不存在,则打开失败。
wb:只写打开或建立一个二进制文件,只允许写数据。如文件不存在, 则建立一个空文件;如文件已经存在,则把原文件内容清空。
ab:追加打开一个文本文件,并在文件末尾写数据。如文件不存在,则 建立一个空文件;如文件已经存在,则把原文件打开,并保持原内 容不变,文件位置指针指向末尾,新写入的数据追加在文件末尾。
rb+ :读写方式打开一个二进制文件,允许读也允许写数据。如文件存在, 则打开后文件指针在开始位置;如文件不存在,则打开失败。
wb+ :读写方式打开一个二进制文件,允许读也允许写数据。如文件不存 在,则就创建该文件;如文件存在,则打开后清空文件内容,文件 指针指向 0 的开始位置。
ab+ :读写方式打开一个二进制文件,允许读也允许写数据。如文件不存 在,则就创建该文件;如文件存在,则打开后不清空文件内容,文 件指针指向文件的末尾位置。
二进制文件认为数据都是字节流,因此二进制文件不存在编码的问题,只有文本文件才 有编码问题。因为二进制文件时字节流,因此也不存在 readline,readlines 读一行或者多行的 操作函数,一般二进制文件值使用 read 函数读取,使用 write 函数写入。
文件本质 :
文件的本质是二进制字节数据,即所有的文件都是二进制文件,文本文件只是在写时把 文本按一定编码转为二进制数据进行存储,在读时先读出二进制数据,再通过一定的编码转 为文本。
#二进制文件 rb wb ab rb+ wb+ ab+ 二进制文件不存在编码问题,一般使用read/write函数
#文本文件写:按一定编码格式转为二进制存储,文本文件读:先读出二进制数据,再通过一定编码转为文本
def writeFile():
fobj=open("./ss.txt","wt")
fobj.write("abc中国")
fobj.close()
def readFile():
fobj=open("./ss.txt","rb")
data=fobj.read()
for i in range (len(data)):
print(hex(data[i]),end=" ")
fobj.close()
try:
writeFile()
readFile()
except Exception as err:
print(err)