解析文本文件 "r" 與 "rb" 模式的區別(Python)


r,rb 那么在讀文件時,有無b標識的的主要區別在哪里呢?

 

1、文件使用方式標識

'r':默認值,表示從文件讀取數據。
'b':表示要讀寫二進制數據

 

2、讀文件 進行讀文件操作時,直到讀到文檔結束符(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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM