PHP前端开发

如何在Python中读取(或写入)二进制数据?

百变鹏仔 15小时前 #Python
文章标签 二进制数

要读取或写入二进制文件,首先您需要了解 python 中二进制文件的不同文件模式 -

模式描述
rb打开一个文件以只读二进制格式。文件指针位于文件的开头。这是默认模式。
rb+打开一个文件以二进制格式进行读写。文件指针放置在文件的开头。
wb打开仅以二进制格式写入的文件。如果文件存在则覆盖该文件。如果该文件不存在,则创建一个新文件进行写入。
wb+打开一个文件以二进制格式进行写入和读取。如果文件存在,则覆盖现有文件。如果文件不存在,则创建一个新文件进行读写。
ab打开一个文件以二进制格式追加。如果文件存在,则文件指针位于文件末尾。也就是说,该文件处于追加模式。如果该文件不存在,则会创建一个新文件进行写入。
ab+打开文件以二进制格式追加和读取。如果文件存在,则文件指针位于文件末尾。文件以追加模式打开。如果该文件不存在,则会创建一个新文件进行读写。

读取二进制文件

假设我们有一个二进制文件。我们可以使用 read() 方法来读取它。首先,我们将使用 open() 方法的 rb 模式打开二进制文件。我们在 D: 驱动器中有以下源文件 -

示例

让我们看看完整的代码

立即学习“Python免费学习笔记(深入)”;

# Open a binary filef = open('D:PythonLogo.png', 'rb')# Read linesdata = f.read()# Display the dataprint(data)

输出

二进制文件不可读,内容无法识别。实际产量更大。下面我们只展示了一部分。

b'�PNGIHDR���!��gAMA���acHRMz&�����u0�`0:�p��Q禑@����q0B��!x88(���"�b���z�8�JEeF۔�@�xa0���`���D@,#�Ԑr����#i瞳����~>�;...�n�d�Q���|��	�Q�9���$Izp�>�����dr3�����QJ�xe5��X��u۬�-{�{�e��#��	ݯ������wf�w>mۼ5-X���2�?ʟ�Xm�=x00%tEXtdate:create2017-08-10T07:22:07+00:00u��c%tEXtdate:modify2017-08-10T07:22:07+00:00�^�IEND�B`�'

写入二进制文件

open()方法的wb模式用于以写入格式打开文件。

注意 - 二进制文件不可读,内容无法识别

让我们看一下完整的示例。在这里,文件将存储在E盘中,名称为

示例

MyDemoBinary.bin -

# Open a file in binary format for writingf = open("E:MyDemoBinary.bin","wb")# Elements to be added to the binary filea = [100, 200, 300]# Convert the integer elements to a bytearraymyArr = bytearray(a)# The byte representation ius now written to the filef.write(myArr)f.close()

输出

运行文件后,文件在设置的路径即E盘中可见 -