Python-Struct
从一个例子开始:
>>> from struct import *
>>> pack('hhl',1655, 255, 370)
b'w\x06\xff\x00r\x01\x00\x00'
>>> unpack('hhl', b'w\x06\xff\x00r\x01\x00\x00')
(1655, 255, 370)
>>> calcsize('hhl')
8

struct.pack(format, v1, v2, ...)
返回:一个字节对象
打包v1,v2...16进制值,默认低位在前高位在后
>>> from struct import *
>>> pack('hhl',1655, 255, 370)
b'w\x06\xff\x00r\x01\x00\x00'
b'w\x06\xff\x00r\x01\x00\x00'.hex()
'7706ff0072010000'
16进制,2字符占1字节
如图:

struct.unpack(format, buffer)
返回:一个元组
解压一个字节对象为元组
>>> unpack('hhl', b'w\x06\xff\x00r\x01\x00\x00')
(1655, 255, 370)
struct.calcsize(format)
返回:返回定义格式的字节大小
>>> calcsize('hhl')
8
hhl:2+2+4 =8
完整示例
import struct
#默认低位在前,高位在后,“<”模式
b = struct.pack('ihb', 255, 22, 37)
s = struct.unpack('ihb',b)
print(b)
print(s)
print("*******************")
data = [255, 22, 37]
#网络结构 :“!”和“>”相同,高位在前
buffer = struct.pack('!ihb', *data)
buffer_u =struct.unpack('!ihb', buffer)
print(buffer)
print(buffer_u)
print("*******************")
# 压缩解压不同模式,则解压错误
buffer_s =struct.unpack('ihb', buffer)
print(buffer_s)
b'\xff\x00\x16\x00%\x00\x00\x00'
(255, 22, 37)
*******************
b'\x00\xff\x00\x16\x00\x00\x00%'
(255, 22, 37)
*******************
(-256, 5632, 620756992)
Python-Struct的更多相关文章
- python struct中的pack unpack
python struct中的pack unpack pytyon tuple元组 print struct.unpack("!ihb", buffer) 结果为7 //pyth ...
- (转)python struct简介
最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结. 了解c语言 ...
- Python struct模块
有的时候需要用python处理二进制数据,比如,存取文件,socket操作时.这时候,可以使用python的struct模块来完成.可以用 struct来处理c语言中的结构体. struct模块中最重 ...
- python struct.pack() 二进制文件,文件中打包二进制数据的存储与解析
学习Python的过程中,遇到一个问题,在<Python学习手册>(也就是<learning python>)中,元组.文件及其他章节里,关于处理二进制文件里,有这么一段代码的 ...
- python struct模块的使用
struct模块中的函数 函数 return explain pack(fmt,v1,v2…) string 按照给定的格式(fmt),把数据转换成字符串(字节流),并将该字符串返回. pack_in ...
- python struct详解
转载:https://www.cnblogs.com/gala/archive/2011/09/22/2184801.html 有的时候需要用python处理二进制数据,比如,存取文件,socket操 ...
- Python struct 详解
最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结. 了解c语言 ...
- Python struct与小端存储
参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017685387246080 在使用Python 实现字符向字节数据类型转换的时候,P ...
- python struct.pack中的对齐字节问题
最近测试涉及到了序列字节化相关问题,碰到一个头疼的问题 buff = struct.pack("3s","B00") print repr(buff) 输 ...
- python struct.pack方法报错argument for 's' must be a bytes object 解决
参考 https://blog.csdn.net/weixin_38383877/article/details/81100192 在python3下使用struct模块代码 fileHead = s ...
随机推荐
- vue源码分析—Vue.js 源码目录设计
Vue.js 的源码都在 src 目录下,其目录结构如下 src ├── compiler # 编译相关 ├── core # 核心代码 ├── platforms # 不同平台的支持 ├── ser ...
- ARTS打卡第四周
Algorithm 只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用 ...
- Linux:Day17(下) openssl
Linux Services and Security OpenSSL OpenSSH dns:bind web:http,httpd(apache),php,mariadb(mysql) lamp ...
- Hive JDBC:java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate anonymous
今天使用JDBC来操作Hive时,首先启动了hive远程服务模式:hiveserver2 &(表示后台运行),然后到eclipse中运行程序时出现错误: java.sql.SQLExcepti ...
- Python支付宝在线支付API
一.蚂蚁金服开发平台申请测试账号 a. 登陆蚂蚁金服开放平台https://open.alipay.com/platform/manageHome.htm,在“开发中心”—“研发服务”下拉处选择沙箱作 ...
- webpack优化相关操作
1.缩小文件搜索的范围 • 优化loader配置 尽量精确使用 include 只命中需要的文件. module.exports = { module: { rules: ...
- 安装Cnario Player 3.8.1.156或其他版本时提示"Warning 4154. Adobe Flash Player 13 ...not correctly installed"
错误提示 安装Cnario Player 3.8.1.156或其他版本时, 有时会出现如下提示: Warning 4154. Adobe Flash Player 13 ...not correctl ...
- wince可用的7-zip
7-zip下载 7-zip
- ERP常见问题总结处理
1. ERP系统的重量录入组件设计不合理易导致录入错误 如下图所示: 修正方法: 1. 更正数据 使用SQL语句更正数据,已经生产完成,作为单据重新录入比较麻烦 UPDATE e_wms_materi ...
- 【dp】合唱队形
题目描述 NN位同学站成一排,音乐老师要请其中的(N-KN−K)位同学出列,使得剩下的KK位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K,他们的身高分别为 ...