r,rb 那么在读文件时,有无b标识的的主要区别在哪里呢?编码
一、文件使用方式标识code
'r':默认值,表示从文件读取数据。
'b':表示要读写二进制数据文档
二、读文件 进行读文件操做时,直到读到文档结束符(EOF)才算读取到文件最后,Python会认为字节\x1A(26)转换成的字符为文档结束符(EOF),二进制
故使用'r'进行读取二进制文件时,可能会出现文档读取不全的现象。方法
示例:
二进制文件中存在以下从低位向高位排列的数据:7F 32 1A 2F 3D 2C 12 2E 76
若是使用'r'进行读取,则读到第三个字节,即认为文件结束。
若是使用'rb'按照二进制位进行读取的,不会将读取的字节转换成字符,从而避免了上面的错误。
解决方案:
二进制文件就用二进制方法读取'rb'文件读取
一句话:数据
r
:Python 将会按照编码格式进行解析,read()
操做返回的是str
rb
:也即 binary mode,read()
操做返回的是bytes