python strtuct模块主要在Python中的值于C语言结构之间的转换。可用于处理存储在文件或网络连接(或其它来源)中的二进制数据。
1.支持的顺序和格式字符


struct 最常用的方法有两个: - struct.pack(fmt,v1,v2,…) 返回的是一个字符串,是参数按照fmt数据格式组合而成。 - struct.unpack(fmt,string) 按照给定数据格式解开(通常都是由struct.pack进行打包)数据,返回值是一个tuple。
实例:
# -*- coding: utf-8 -*-
# @Time : 2022/4/24 10:18
# @File : structdemo.py
# @Software : PyCharm
import struct
'''
数据格式
名字 职业 年
winner coder 2022
'''
name = b'winner'
job = b'coder'
year = 2022
with open('coder.data', 'wb+') as file:
# 6s表示6字节的字符串,5s含义同4s i表示整数(有符号)
file.write(struct.pack('6s5si', name, job, year))
file.flush()
with open('coder.data', 'rb+') as file:
strBin = file.read()
print(strBin)
content = struct.unpack('6s5si', strBin)
print(content)
运行结果:
b'winnercoder\x00\xe6\x07\x00\x00'
(b'winner', b'coder', 2022)