前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python struct使用

python struct使用

作者头像
李小白是一只喵
发布2020-04-27 10:34:34
6170
发布2020-04-27 10:34:34
举报
文章被收录于专栏:算法微时光算法微时光

image.png

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

实战

格式的使用:

代码语言:javascript
复制
# -*- coding: utf-8 -*-
import struct
a=1
b=-1
print(struct.pack("h",b))
print(struct.pack("i",b))

image.png

二进制文件读写:

代码语言:javascript
复制
# -*- 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

参考

python之struct详解 struct python

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • struct
  • API函数
    • 支持的格式
    • 实战
    • 参考
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档