转: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()相关推荐

  1. python struct pack解析_python struct pack

    这个struct主要是用来处理C结构数据的,读入时先转换为Python的字符串类型,然后再转换为Python的结构化类型,比如元组(tuple)啥的~ 一般输入的渠道来源于文件或者网络的二进制流. 在 ...

  2. python struct.pack()函数 (返回一个字节对象,其中包含根据格式字符串fmt打包的值v1,v2,...)

    def pack(fmt, *args): # known case of _struct.pack"""pack(fmt, v1, v2, ...) -> byt ...

  3. python struct pack一个数组_Python中struct.pack的一个疑问

    展开全部 的确很奇怪.我试验了10几分钟,你按下面的方法来做就可以正确.import struct zzz = ("{Type:2}").encode("utf-8&qu ...

  4. 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 ...

  5. python中pack函数,python中struct.pack()函數和struct.unpack()函數

    python中的struct主要是用來處理C結構數據的,讀入時先轉換為Python的字符串類型,然后再轉換為Python的結構化類型,比如元組(tuple)啥的~.一般輸入的渠道來源於文件或者網絡的二 ...

  6. python unpack_python中struct.pack()函数和struct.unpack()函数

    python中的struct主要是用来处理C结构数据的,读入时先转换为Python的字符串类型,然后再转换为Python的结构化类型,比如元组(tuple)啥的~.一般输入的渠道来源于文件或者网络的二 ...

  7. python struct pack string_struct (String) – Python 中文开发手册

    Python 中文开发手册 struct (String) - Python 中文开发手册 该模块执行Python值与C结构之间的转换,表示为Python字符串.这可用于处理存储在文件或网络连接中的二 ...

  8. python struct pack string_python struct pack fmt格式

    Python使用struct处理二进制 有的时候需要用python处理二进制数据,比如,存取文件,socket操作时.这时候,可以使用python的struct模块来完成.可以用 struct来处理c ...

  9. header = struct.pack(!i, n) struct.error: 'i' format requires -2147483648 number 2147483647

    环境:ubuntu python3.6 在多进程之间交换(传递)大量数据时报错. 报错: Traceback (most recent call last):   File "/usr/li ...

  10. struct.pack

    准确地讲,Python没有专门处理字节的数据类型.但由于str既是字符串,又可以表示字节,所以,字节数组=str.而在C语言中,我们可以很方便地用struct.union来处理字节,以及字节和int, ...

最新文章

  1. Linux环境编程--文件基本操作
  2. matlab中实时脚本与纯代码脚本
  3. STL泛型算法:reverse
  4. 什么是心理测试系统软件,心理测评系统是什么
  5. 序列化的高阶认识-Transient 关键字
  6. 摆放家具-定义房子类
  7. 删除重复记录处理(转)
  8. Javascript 面向对象编程
  9. 排序(基本概念及分类,直接插入排序和希尔排序)
  10. 考驾照重点科目的关键考试技巧
  11. 嵌套饼图_你真的了解matplotlib吗?---环形图
  12. 一道哈夫曼二叉树题目--稍微容易一点
  13. 通用管理系统概要设计说明书
  14. 小米手机的专用计算机连接软件,详细教您小米手机怎么连接电脑
  15. word页码任意设置,如显示在页脚外侧、横版页面要求显示在左侧或右侧
  16. celery redis mysql_GitHub - FJUT/gxgk-wechat-server: 校园微信公众号后端,使用 Python、Flask、Redis、MySQL、Celery...
  17. 安科瑞电瓶车智能充电桩ACX可10路充电 安科瑞 戈静怡
  18. 基于ROS+镭神激光雷达+amcl定位、导航的智能车学习记录
  19. C++学习笔记(九)——运算符重载
  20. 禁用笔记本键盘和触摸板

热门文章

  1. python编写格斗游戏_设计并编写代码自动格斗类游戏
  2. 《NAIS: Neural Attentive Item Similarity Model for Recommendation》论文阅读及解析
  3. 幼儿stem教育法则
  4. 心系冬奥 翰墨传情 |当代书画名家为奥运加油书画推介展【翟鑫篇】
  5. ChatGPT从业影响之个人浅见
  6. 丫头,该有个家了。(很温暖的文章,送给女孩子。)
  7. 二进制小数 牛客网 程序员面试金典 C++ Python
  8. Linux 通过 sendEmail 发送邮件(shell批量发送邮件)
  9. 彩色宝石项链(环状链表处理)
  10. 彩色宝石项链-搜狐编程