Python二进制文件操作主要涉及文件读写、数据解析及转换。以下是核心要点:
一、二进制文件读写基础
-
打开文件
使用
open()
函数以二进制模式('rb'
读取,'wb'
写入)打开文件,确保数据按原样处理。with open('binary_file.bin', 'rb') as f: data = f.read()
-
写入二进制数据
直接将字节串写入文件,需使用
b
前缀表示二进制数据。binary_data = b'\x00\x01\x02\x03' with open('output.bin', 'wb') as f: f.write(binary_data)
-
逐行读取二进制文件
通过迭代器逐行读取,适合处理大文件以节省内存。
with open('binary_file.bin', 'rb') as f: for line in f: process(line)
二、二进制数据解析
使用struct
模块将二进制数据转换为Python数据类型(如整数、浮点数等)。
import struct
# 写入数据
a = 12.34
bytes = struct.pack('f', a) # 'f'表示单精度浮点数
with open('data.bin', 'wb') as f:
f.write(bytes)
# 读取数据
bytes = struct.unpack('f', f.read(4)) # 解包为浮点数
三、二进制文件转换为文本
-
直接解码
假设二进制数据为UTF-8编码,可将其解码为文本。
with open('binary_file.bin', 'rb') as f: text_data = f.read().decode('utf-8') with open('output.txt', 'w') as f: f.write(text_data)
-
使用第三方库
如
numpy
,可高效处理二进制数据结构(如头部信息+数据)。
四、注意事项
-
二进制文件路径需完整,避免因路径错误导致文件未找到。
-
处理非文本二进制文件时,需以二进制模式读写,避免数据损坏。