如何使用 Python 将二进制数据写入文件?


在 Python 中,将二进制数据写入文件是一个常见且常规的任务,当您需要保存非文本数据(如图像、音频文件或序列化对象)时,就会用到它。在本文中,我们将探讨使用 Python 将二进制数据写入文件的各种方法,并提供代码示例以及全面的解释,帮助您掌握这一概念。

要使用 Python 将二进制数据写入文件,您可以按照以下步骤操作

以二进制模式打开文件

首先,您应该使用 open() 函数以二进制模式打开文件。打开文件时,模式声明为 'wb',表示以二进制写入模式打开。此模式确保您写入文件的数据将被视为二进制数据。

file_path = "path/to/file.bin"

with open(file_path, "wb") as file:
    # Write binary data to the file
    # ...

在上面的代码中,file_path 指向您要写入的文件的路径。'with 语句' 用于确保在写入后正确关闭文件。

将二进制数据写入文件

以二进制模式打开文件后,您可以使用 write() 方法将二进制数据写入文件。write() 方法接受一个 bytes 对象作为参数,该对象包含您要写入的二进制数据。

file_path = "path/to/file.bin"

with open(file_path, "wb") as file:
    binary_data = b"\x48\x65\x6C\x6C\x6F"  
# Example binary data
    file.write(binary_data)

在上面给出的代码中,binary_data 是一个 bytes 对象,包含您希望写入的二进制数据。在这里,我们将字符串 "Hello" 的 ASCII 表示形式写入文件。

关闭文件

写入二进制数据完成后,务必关闭文件以释放系统资源。'with 语句' 会为您处理文件关闭,但如果您未使用它,请确保在文件对象上调用 close() 方法。

file_path = "path/to/file.bin"
file = open(file_path, "wb")

# Write binary data to the file
# ...

file.close()

在上面的代码中,file.close() 用于在写入二进制数据后关闭文件。

示例

在此示例中,我们首先将 file_path 变量定义为要写入二进制数据的文件的路径。然后,我们使用 open() 函数并将模式设置为 'wb' 以二进制写入模式打开文件。在 'with 块' 内,我们生成一个名为 binary_data 的 bytearray 对象,其中包含我们需要写入的二进制数据。在本例中,我们有四个字节的序列,其十六进制值为。最后,我们使用 write() 方法将二进制数据写入文件。

file_path = "path/to/file.bin"

with open(file_path, "wb") as file:
    binary_data = bytearray([0xFF, 0x00, 0x7F, 0x80])  
    # Example binary data as a bytearray
    file.write(binary_data)

示例

在此代码示例中,我们演示了如何使用 struct 模块写入二进制数据;它提供了打包和解包二进制数据的函数。我们从导入 struct 模块开始。然后,我们将 file_path 变量设置为文件的路径。在 'with 块' 内,定义了两个变量 value1 和 value2,它们表示我们要写入的数据。我们使用 struct.pack() 函数将值打包成二进制数据。在本例中,我们打包了一个整数 ("i") 和一个浮点数 ("f")。我们使用 + 运算符连接生成的二进制数据,并使用 write() 方法将其写入文件。

import struct

file_path = "path/to/file.bin"

with open(file_path, "wb") as file:
    value1 = 123
    value2 = 3.14
    binary_data = struct.pack("i", value1) + 
struct.pack("f", value2)
    file.write(binary_data)

示例

这里,我们首先导入 array 模块。然后,我们将 file_path 变量定义为要写入二进制数据的文件的路径。我们生成一个名为 data 的数组对象,并为其分配一系列无符号字节值。在 with 块内,文件以二进制写入模式打开,write() 方法用于将二进制数据写入文件。在写入之前,我们使用 tobytes() 方法将数组转换为字节。

import array
file_path = "path/to/file.bin"

data = array.array("B", [10, 20, 30, 40, 50])  
# Example binary data as an array

with open(file_path, "wb") as file:
    file.write(data.tobytes())

示例

在最后一个示例中,我们演示了另一种使用 struct 模块打包二进制数据的方法。首先,导入 struct 模块。然后,file_path 变量被定义为文件的路径。我们有两个变量 value1 和 value2,指向我们要写入的数据。我们使用 struct.pack() 函数将值打包成二进制数据。在本例中,我们打包了一个整数 ("i") 和一个浮点数 ("f")。生成的二进制数据加载到 data 变量中。在 'with 块' 内,文件以二进制写入模式打开,write() 方法用于将二进制数据写入文件。

import struct

file_path = "path/to/file.bin"

value1 = 123
value2 = 3.14

data = struct.pack("i f", value1, value2)  
# Example binary data as a packed struct
with open(file_path, "wb") as file:
    file.write(data)

在本文中,正如您现在所看到的,我们已经探索了使用 Python 将二进制数据写入文件的几种方法。我们讨论了涉及的步骤,包括以二进制模式打开文件、写入二进制数据和关闭文件。通过仔细遵循这些步骤并使用适当的模式和方法,您可以有效地将二进制数据写入 Python 中的文件。无论您是处理图像、音频文件还是任何其他二进制数据,掌握这项技能都将使您能够在 Python 程序中优雅地处理非文本数据。

更新于: 2023-07-25

39K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.