在 Python 中使用檔案開啟時,'b' 修飾符有什麼作用?
如果我們使用b修飾符在 Python 中開啟一個檔案。使用'b'修飾符以二進位制模式開啟檔案。任何格式不包含可讀字元的檔案都被稱為“二進位制”檔案。二進位制檔案包括音訊檔案(如 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+ 等。