解析文本文件 "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
相關文章
相關標籤/搜索