zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python--struct

Python -- struct
2023-09-27 14:28:42 时间

 当我们在 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)