python分别用pickle和struct写入和读取二进制文件
时间: 2024-02-28 14:56:02 浏览: 69
好的,我会解答您的问题。
首先,pickle模块是Python标准库中的序列化模块,它可以将Python对象序列化为二进制数据,并且可以将二进制数据反序列化为Python对象。下面是使用pickle模块写入和读取二进制文件的示例代码:
```python
import pickle
# 写入二进制文件
data = {'name': 'Tom', 'age': 18, 'score': [80, 90, 85]}
with open('data.bin', 'wb') as f:
pickle.dump(data, f)
# 读取二进制文件
with open('data.bin', 'rb') as f:
data = pickle.load(f)
print(data)
```
接下来是使用struct模块写入和读取二进制文件的示例代码:
```python
import struct
# 写入二进制文件
data = (1, 2, 3, 4, 5)
with open('data.bin', 'wb') as f:
for d in data:
f.write(struct.pack('i', d))
# 读取二进制文件
with open('data.bin', 'rb') as f:
data = []
while True:
d = f.read(4)
if not d:
break
data.append(struct.unpack('i', d)[0])
print(data)
```
需要注意的是,使用struct模块写入和读取二进制文件时,需要先将数据转换为字节流,然后再进行写入和读取。此外,写入和读取数据时,需要使用相同的数据格式。在上面的示例代码中,我们使用'i'表示整数类型。
阅读全文