struct.pack()
转:https://blog.csdn.net/weiwangchao_/article/details/80395941
data=pack('<' + ('h' *len(data)),*data)
‘<’ : 小端('little- endian'):高位放在低地址段
'h':代表C struct中的short类型,占2位
* len(data):data中的每一元素都用short类型(2位)表示
*data:打包的为列表
首先将参数1,2,3打包,打包前1,2,3明显属于python数据类型中的integer,pack后就变成了C结构的二进制串,转成 python的string类型来显示就是 '\x01\x00\x00\x00\x02\x00\x03'。由于本机是小端('little- endian',关于大端和小端的区别请参照这里, 故而高位放在低地址段。i 代表C struct中的int类型,故而本机占4位,1则表示为01000000;h 代表C struct中的short类型,占2位,故表示为0200;同理b 代表C struct中的signed char类型,占1位,故而表示为03。
在Format string 的首位,有一个可选字符来决定大端和小端,列表如下:
如果没有附加,默认为@,即使用本机的字符顺序(大端or小端),对于C结构的大小和内存中的对齐方式也是与本机相一致的(native),
比如刚才的小程序的后半部分,使用的format string中首位为!,即为大端模式标准对齐方式,故而输出的为'\x00\x00\x00\x01\x00\x02\x03',其中高位自己就被放在内存的高地址位了。
struct.pack()相关推荐
- python struct pack解析_python struct pack
这个struct主要是用来处理C结构数据的,读入时先转换为Python的字符串类型,然后再转换为Python的结构化类型,比如元组(tuple)啥的~ 一般输入的渠道来源于文件或者网络的二进制流. 在 ...
- python struct.pack()函数 (返回一个字节对象,其中包含根据格式字符串fmt打包的值v1,v2,...)
def pack(fmt, *args): # known case of _struct.pack"""pack(fmt, v1, v2, ...) -> byt ...
- python struct pack一个数组_Python中struct.pack的一个疑问
展开全部 的确很奇怪.我试验了10几分钟,你按下面的方法来做就可以正确.import struct zzz = ("{Type:2}").encode("utf-8&qu ...
- python3 struct.pack方法报错argument for 's' must be a bytes object
在python3下使用struct模块代码 fileHead = struct.pack('128sl', os.path.basename(filePath),os.stat(filePath).s ...
- python中pack函数,python中struct.pack()函數和struct.unpack()函數
python中的struct主要是用來處理C結構數據的,讀入時先轉換為Python的字符串類型,然后再轉換為Python的結構化類型,比如元組(tuple)啥的~.一般輸入的渠道來源於文件或者網絡的二 ...
- python unpack_python中struct.pack()函数和struct.unpack()函数
python中的struct主要是用来处理C结构数据的,读入时先转换为Python的字符串类型,然后再转换为Python的结构化类型,比如元组(tuple)啥的~.一般输入的渠道来源于文件或者网络的二 ...
- python struct pack string_struct (String) – Python 中文开发手册
Python 中文开发手册 struct (String) - Python 中文开发手册 该模块执行Python值与C结构之间的转换,表示为Python字符串.这可用于处理存储在文件或网络连接中的二 ...
- python struct pack string_python struct pack fmt格式
Python使用struct处理二进制 有的时候需要用python处理二进制数据,比如,存取文件,socket操作时.这时候,可以使用python的struct模块来完成.可以用 struct来处理c ...
- header = struct.pack(!i, n) struct.error: 'i' format requires -2147483648 number 2147483647
环境:ubuntu python3.6 在多进程之间交换(传递)大量数据时报错. 报错: Traceback (most recent call last): File "/usr/li ...
- struct.pack
准确地讲,Python没有专门处理字节的数据类型.但由于str既是字符串,又可以表示字节,所以,字节数组=str.而在C语言中,我们可以很方便地用struct.union来处理字节,以及字节和int, ...
最新文章
- 用 Handler 轻松实现专属Android定时器
- HDU 1232 - 畅通工程
- 编程理论:多态,继承,和开闭原则
- php 查询数据库返回json数据
- Sklearn参数详解--决策树
- mvc 模式和mtc 模式的区别
- Intel 64/x86_64/IA-32/x86处理器 - 通用指令(4) - 比特位设置指令/字节设置指令
- Kafka和RocketMQ底层存储:零拷贝技术
- 实验五:编写、调试具有多个段的程序
- 【渝粤教育】国家开放大学2019年春季 1250文论专题 参考试题
- java基础——浅析设计模式之单例模式
- JQuery文档信息
- 数据分析必备的五大能力
- HBuilderX前端html功能拓展应用
- YOLOv3: An Incremental Improvement (YOLOv3 论文翻译)
- 微信小程序:高德地图搜索周边poi接口实践
- 2000个软件开发领域的高频特殊词及精选例句
- 微信小程序 java音乐播放器系统python php
- $我不是韭菜--基金篇(力哥P1-P6)$
- a view of a leaf Variable that requires grad is being used in an in-place operation.
热门文章
- Oracle - Profile
- Jenkins Maven checkstyle findbugs pmd静态代码检查
- 祈福英文学校2021年高考成绩查询,「祈福英语实验学校(中学)」2021届高三港澳台学子送考小记...
- JSP中out内置对象的使用
- 动态规划(DP)--入门题
- python控制机械臂6轴_基于Firmata协议的ROS Moveit六轴机械臂设计
- zurmo(七)-部分报错解决(2)
- 18.弄懂生成器节约内存一边计算一边生成
- PYTHON 顺丰快递分拣小程序
- 语音分离--学习笔记(2)