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()操作返回的是strrb:也即 binary mode,read()操作返回的是bytes
