解析文本文件 "r" 与 "rb" 模式的区别(Python)

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
相关文章
相关标签/搜索