python中rb含義理解
阿新 • • 發佈:2020-06-19
Python檔案讀寫的幾種模式:
r,rb,w,wb 那麼在讀寫檔案時,有無b標識的的主要區別在哪裡呢?
檔案使用方式標識
- 'r':預設值,表示從檔案讀取資料
- 'w':表示要向檔案寫入資料,並截斷以前的內容
- 'a':表示要向檔案寫入資料,新增到當前內容尾部
- 'r+':表示對檔案進行可讀寫操作(刪除以前的所有資料)
- 'r+a':表示對檔案可進行讀寫操作(新增到當前檔案尾部)
- 'b':表示要讀寫二進位制資料。
讀檔案 進行讀檔案操作時,直到讀到文件結束符(EOF)才算讀取到檔案最後,Python會認為位元組\x1A(26)轉換成的字元為文件結束符(EOF),
故使用'r'進行讀取二進位制檔案時,可能會出現文件讀取不全的現象。
示例:
二進位制檔案中存在如下從低位向高位排列的資料:7F 32 1A 2F 3D 2C 12 2E 76
如果使用'r'進行讀取,則讀到第三個位元組,即認為檔案結束。
如果使用'rb'按照二進位制位進行讀取的,不會將讀取的位元組轉換成字元,從而避免了上面的錯誤。
解決方案:
二進位制檔案就用二進位制方法讀取'rb'
總結:
使用'r'的時候,如果碰到'0x1A',就視為檔案結束,就是EOF。使用'rb'則不存在這個問題,
即:如果你用二進位制寫入再用檔案讀出的話,如果其中存在'0x1A',就只會讀出檔案的一部分,使用'rb'會一直讀取檔案末尾。
知識點擴充套件:
- r是讀取人工書寫的資料,書寫的時候是什麼樣子,讀出來就是什麼樣。
- rb是讀取二進位制檔案,非人工書寫的資料如.jpeg等這些。
- 另外encoding可以指定解碼格式,utf-8是現在的主流編碼方式,如果沒有指定encoding 的方式那麼根據python版本的不同會有不同的解碼方式,Python3中是utf-8,而python2中是ascii。
到此這篇關於python中rb含義理解的文章就介紹到這了,更多相關python中rb是什麼意思內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!