在Python中写入二进制文件需使用`open()`函数并指定`'wb'`模式,同时确保写入的数据为`bytes`类型。以下是具体方法及注意事项:
一、基础写入方法
以二进制写入模式打开文件,若文件存在则覆盖,不存在则创建新文件。 ```python
with open('output.bin', 'wb') as file:
file.write(b'x00x01x02x03') 写入固定二进制数据
```
写入`bytes`类型数据
需确保数据为`bytes`类型,例如直接传递二进制字符串或使用`struct.pack`打包数据。 ```python
直接写入二进制字符串
with open('output.bin', 'wb') as file:
file.write(b"Hello, World!")
使用struct打包数据
import struct
num = 12345
packed_data = struct.pack('i', num) 'i'表示4字节整数
with open('output.bin', 'wb') as file:
file.write(packed_data)
```
二、进阶操作
逐块写入
适合处理大文件,避免一次性占用过多内存。 ```python
with open('output.bin', 'wb') as file:
for chunk in [b'Chunk 1', b'Chunk 2']:
file.write(chunk)
```
追加写入
使用`'ab'`模式在文件末尾追加数据,不覆盖原有内容。 ```python
with open('output.bin', 'ab') as file:
file.write(b'x00x04') 追加4字节数据
```
三、注意事项
数据类型转换: 确保写入的数据为`bytes`,避免使用字符串直接写入二进制文件。 异常处理
文件路径:注意路径分隔符(如Windows使用反斜杠``),建议使用原始字符串(前缀`r`)避免转义问题。
通过以上方法,可高效、安全地完成二进制文件的写入操作。