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, ...
最新文章
- Linux环境编程--文件基本操作
- matlab中实时脚本与纯代码脚本
- STL泛型算法:reverse
- 什么是心理测试系统软件,心理测评系统是什么
- 序列化的高阶认识-Transient 关键字
- 摆放家具-定义房子类
- 删除重复记录处理(转)
- Javascript 面向对象编程
- 排序(基本概念及分类,直接插入排序和希尔排序)
- 考驾照重点科目的关键考试技巧
- 嵌套饼图_你真的了解matplotlib吗?---环形图
- 一道哈夫曼二叉树题目--稍微容易一点
- 通用管理系统概要设计说明书
- 小米手机的专用计算机连接软件,详细教您小米手机怎么连接电脑
- word页码任意设置,如显示在页脚外侧、横版页面要求显示在左侧或右侧
- celery redis mysql_GitHub - FJUT/gxgk-wechat-server: 校园微信公众号后端,使用 Python、Flask、Redis、MySQL、Celery...
- 安科瑞电瓶车智能充电桩ACX可10路充电 安科瑞 戈静怡
- 基于ROS+镭神激光雷达+amcl定位、导航的智能车学习记录
- C++学习笔记(九)——运算符重载
- 禁用笔记本键盘和触摸板
热门文章
- python编写格斗游戏_设计并编写代码自动格斗类游戏
- 《NAIS: Neural Attentive Item Similarity Model for Recommendation》论文阅读及解析
- 幼儿stem教育法则
- 心系冬奥 翰墨传情 |当代书画名家为奥运加油书画推介展【翟鑫篇】
- ChatGPT从业影响之个人浅见
- 丫头,该有个家了。(很温暖的文章,送给女孩子。)
- 二进制小数 牛客网 程序员面试金典 C++ Python
- Linux 通过 sendEmail 发送邮件(shell批量发送邮件)
- 彩色宝石项链(环状链表处理)
- 彩色宝石项链-搜狐编程