当我们在 Python 中跟二进制数据打交道的时候,就要用到 struct 这个模块了。struct 模块为 Python 与 C 的混合编程,处理二进制文件以及进行网络协议交互提供了便利
格式字符串表:
import os import struct ''' 数据格式为 姓名 年龄 性别 职业 liming 18 男 教师 ''' fp = open('test.bin','wb') name = 'lily'.encode('utf-8') age = 18 sex = 'female'.encode('utf-8') job = 'teacher'.encode('utf-8') x=struct.pack('>4si6s7s', name,age,sex,job) #把各个变量按顺序转换成字节字符串 #参数1 格式字符串 看格式字符串表 #4s 4个字符串字节 # > 表示大端保存;< 表示小端保存 """ 小端:较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址。 大端:较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址 默认采用小端 """ fp.write(x) fp.flush() fp.close() # 将文件中写入的数据按照格式读取出来 fd = open('test.bin','rb') # 21 = 4 + 4 + 6 + 7 a=fd.read(23) x=struct.unpack('>4si6s7s',a) #还原变量值 #(b'lily', 18, b'female', b'teacher') fd.close() i=struct.calcsize('ii') #计算格式字符串所对应的结果的长度 print(i)