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