在 Python 中開啟檔案時,“b”修飾符有什麼作用?


如果我們使用b修飾符在 Python 中開啟一個檔案,則該檔案將以二進位制模式開啟。任何格式不包含可讀字元的檔案都被稱為“二進位制”檔案。二進位制檔案包括音訊檔案(如 MP3)、文字格式(如 Word 或 PDF)和影像檔案(如 JPEG 或 GIF)。在 Python 中,檔案會自動以文字模式開啟。選擇模式時,請包含字母“b”以表示二進位制模式。

預設情況下,`open()` 函式以文字格式開啟檔案。“wb”模式以二進位制格式開啟檔案以進行寫入,而“rb”模式以二進位制格式開啟檔案以進行讀取。與文字檔案不同,二進位制檔案無法被人閱讀。可以使用任何文字編輯器開啟資料,但它不可用。

以二進位制格式開啟檔案的不同模式

以下是以二進位制格式開啟檔案的不同模式:

b − 以二進位制模式開啟。

ab − 以二進位制格式開啟檔案,但在其他方面與 a 模式相同(在 a 模式下,檔案以追加方式開啟。如果檔案存在,則指標位於檔案末尾;否則,將建立一個新檔案進行寫入)。

示例

以下是以 ab 模式開啟檔案的示例:

# Opening a file file = open("file.txt", "ab") print ("Name of the file: ", file.name) print ("Opening mode : ", file.mode)

輸出

以下是上述示例的輸出

Name of the file:  file.txt
Opening mode :  ab

ab+ − 以二進位制格式開啟檔案,但在其他方面與 a+ 模式類似(a+ 模式允許讀取和追加到檔案。如果檔案已存在,則檔案指標位於檔案末尾;否則,將建立一個新檔案進行讀取和寫入)。

wb − 與 w 模式類似,但以二進位制格式開啟檔案(w 模式透過開啟檔案啟用寫入,替換現有檔案,如果現有檔案不存在則建立一個新檔案)。

示例

以下程式碼建立一個二進位制檔案,並在其中儲存整數列表。在寫入之前,列表首先轉換為位元組陣列。`bytearray()`,一個內部函式,返回專案的位元組表示。

file=open("files.txt","wb") numbers=[50, 100, 125, 230, 254] array=bytearray(numbers) file.write(array) file.close() print ("File Created")

輸出

作為輸出,我們可以看到一個名為“files.txt”的新檔案。

File Created

wb+ − 以二進位制格式開啟檔案,與 w+ 模式不同(w+ 以讀寫模式開啟檔案;其餘與 w 模式類似)。

rb − 以二進位制模式開啟檔案,但在其他方面與 r 模式相同(r 模式即只讀模式用於開啟檔案。檔案的指標位於檔案的開頭。此外,這是預設模式)。

示例

file = open('file.txt', 'rb') file_info = file.read() file.close() print ("File Created")

輸出

作為輸出,我們可以看到一個名為“files.txt”的新檔案。

File Created

rb+ − 與 r+ 模式類似,只是以二進位制模式開啟檔案。(r+ 模式開啟檔案以便可以讀取和寫入。檔案的起始點是指標所在的位置)。

注意 − 所有模式的示例程式碼都相同,只需根據需要替換模式,例如 rb、rb+、wb、wb+ 等。

更新於:2022年11月14日

12K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告