在 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+ 等。