struct
官方解释:Interpret strings as packed binary data.
具体作用就是用来处理字节流的,类似于c语言的struct.
API函数
struct模块中最重要的三个函数:
函数名 | 说明 |
---|---|
pack(fmt, v1, v2, ...) | 按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结构体的字节流) |
unpack(fmt, string) | 按照给定的格式(fmt)解析字节流string,返回解析出来的tuple |
calcsize(fmt) | 计算给定的格式(fmt)占用多少字节的内存 |
pack_into(fmt,buffer,offset,v1,v2…) | 按照给定的格式(fmt),将数据转换成字符串(字节流),并将字节流写入以offset开始的buffer中.(buffer为可写的缓冲区,可用array模块) |
pack_from(fmt,buffer,offset) | 按照给定的格式(fmt)解析以offset开始的缓冲区,并返回解析结果 |
支持的格式
image.png实战
格式的使用:
# -*- coding: utf-8 -*-
import struct
a=1
b=-1
print(struct.pack("h",b))
print(struct.pack("i",b))
image.png
二进制文件读写:
# -*- coding: utf-8 -*-
import struct
a=1000
b=-1000
f=open("111.bin","wb")
f.write(struct.pack("h",a))#对a装包,并写入
f.write(struct.pack("i",b))
f.close()
f=open("111.bin",'rb')
a1=f.read(2)
a2=struct.unpack("h",a1)#解包操作
b1=f.read(4)
b2=struct.unpack("i",b1)
print(a2,b2)
image.png
网友评论