首页  > 教育解读  > python如何读写二进制文件内容

python如何读写二进制文件内容

2025-05-02 23:12:28
发奋图强
发奋图强已认证

发奋图强为您分享以下优质知识

Python读写二进制文件内容可通过以下方式实现,结合了基础操作与高级技巧:

一、基础读写方法

打开文件

使用`open()`函数,模式参数需指定为`'rb'`(读二进制)或`'wb'`(写二进制)。

```python

读取文件

with open('example.bin', 'rb') as file:

data = file.read()

写入文件

with open('example.bin', 'wb') as file:

file.write(b'x00x01x02x03')

```

读取数据

- `read()`方法可按需读取指定字节数(如`file.read(10)`)或默认读取整个文件。

- 支持分块读取:`file.read(size)`或`file.readline()`(按行读取)。

写入数据

可以直接写入二进制数据(如字符串需加`b`前缀)。

二、进阶操作技巧

文件指针控制

- 使用`seek()`方法移动文件指针(如`file.seek(100)`跳过前100字节)。

- 读取指定位置数据:`file.read(4)`从当前指针位置读取4个字节。

大文件处理

对大文件建议使用`read(size)`分块读取,避免一次性加载整个文件到内存。

```python

chunk_size = 1024

with open('large_file.bin', 'rb') as file:

while True:

data = file.read(chunk_size)

if not data:

break

处理数据

```

使用`struct`模块解析二进制数据

可将二进制数据打包为结构化格式,或解析已存在的结构化数据。

```python

import struct

写入结构化数据

data = struct.pack('4c', b'a', b'b', b'c', b'd')

with open('data.bin', 'wb') as file:

file.write(data)

读取结构化数据

unpacked_data = struct.unpack('4c', file.read(4))

print(unpacked_data) 输出: ('a', 'b', 'c', 'd')

```

三、注意事项

文件关闭:

使用`with`语句可自动管理文件关闭,避免资源泄露。

数据类型:读取结果为`bytes`类型,若需其他类型(如整数、浮点数),需进一步转换(如`int.from_bytes()`)。

异常处理:建议添加`try-except`块处理文件操作异常。

通过以上方法,可灵活应对不同场景下的二进制文件读写需求。