
发奋图强为您分享以下优质知识
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`块处理文件操作异常。
通过以上方法,可灵活应对不同场景下的二进制文件读写需求。