全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
转换到C结构或从C结构转换回来struct模块允许创建一个等效于C结构的字符串,可以读写那些非Python程序生成的二进制文件。或者用于不同程序的网络通信。因为pickle模块的数据类型只能被Python识别。使用struct需要使用格式字符串,调用struct.pack(format,v1,v2, .)。格式字符如下:字符C类型Python类型cChar长度为1的字符串schar字符串p(pascal字符串)字符串iInt整型(4)IUnsigned int整型或长整型*bSigned char整型Bunsigned char整型hShort整型Hunsigned short整型lLong整型Longunsigned Long长整型fFloat浮点型dDouble浮点型x(pad style)-Pvoid*整型或长整型带有星号的表示依赖于平台的指针是32位还是16位。例如,如下的C结构的等价物用:struct int a;int b;char c;采用值10,20,Z,如下: import struct z=struct.pack(iic,10,20,Z) z012000000000024000000000z从字节串反向转换用struct.unpack(format,data),返回元组: struct.unpack(iic,z)(10,20,Z)传递给unpack的格式字符串一定要说明字符串中的所有数据,否则会产生异常。使用struct.calcsize(format)可以计算给定的格式字符串占用的字节数。可以在格式字符前加上一个编号,表示这个数据类型重复的次数。为了便于理解,可以在格式字符串中的格式字符之间加入空格。重复器编号的运行方式与s(字符串)格式字符稍有差别。重复器会告诉字符串的长度(5s意味着5个字符的字符串)。0s意味着一个空字符串,而0c意味着0字符串。如果C的int和long的大小相同,T格式字符会把给定的编号解包为Python长整型。如果C int比C long小,T把编号转换为Python整数。p格式字符串支持pascal字符串。这种字符串使用第一个字节存储字符串长度,所以最大长度为255字节,其余的截断。如果提供了重复器则是指定整个字符串的字节数,包含长度字节。如果字符串小于指定字节数,则pack会添加空的填充字符。默认时,struct会把字节顺序和结构成员对齐使用当前平台的C编译器使用的格式。通过下表列出的某个修饰符启动自己的格式字符串,可以超越这种行为。例如使用网络序: struct.pack(ic,65535,D) #本机字节序为高序优先377377000000D struct.pack(!ic,65535,D) #强制网络字节序000000377377D修饰符字节顺序对齐大小或!低序优先(网络)无标准=内在的无标准(默认)内在的内在的内在的当使用了一个大小为standard的修饰符,则C short会占据2个字节,int、long、float将使用4个字节,double使用8个字节。如果需要使用对齐,而又不想用(内在的对齐)时,可用x格式字符插入填充字节。如果必须强制一个结构的末端依据特殊类型的对齐规则进行对齐,则可用这种类型的格式代码(计数值为0)。如下例子强制单字符的结构对齐整型边界: struct.pack(c,A)A struct.pack(c0l,A)A000000000P(指针)格式字符只能在本地赋值中使用。可用struct模块读写二进制文件,比如提取.wav文件的前36个字节的文件信息头。内容如下:RIFF(4字节),用于识别文件类型高序优先的长度字段(4字节)WAVE(4字节),用于识别文件类型fmt (4字节)格式定义的子数据块长度(4字节)格式类型(2字节)声道数(2字节)采样频率/Hz(4字节)每秒数据量/字节(4字节)样本字节数/字节(2字节)声道宽度/位(2字节)表示标题的格式字符串: s=open(c:winntmediaringin.wav,r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年现代中药制剂教育部重点实验室科研助理招聘补报通知备考题库及答案详解一套
- 2025年衢州市公安局柯城分局公开招聘辅警8人备考题库及参考答案详解
- 2025年东源县卫生健康局公开招聘高层次和急需紧缺人才备考题库及参考答案详解一套
- 佛山农商银行2026年校园招聘备考题库及参考答案详解
- 2025年济南市检察机关公开招聘聘用制书记员备考题库及参考答案详解
- 2025至2030中国果皮和棍子壁纸行业调研及市场前景预测评估报告
- 2025至20302乙基己酸锡行业发展趋势分析与未来投资战略咨询研究报告
- 2025年东源县卫生健康局公开招聘高层次和急需紧缺人才备考题库附答案详解
- 中共越西县委组织部越西县人力资源和社会保障局2025年下半年公开考核招聘事业单位工作人员的备考题库及答案详解1套
- 2025-2030中国调节控制阀行业市场发展趋势与前景展望战略研究报告
- 对人类教育四个发展阶段的探析
- 护理部竞聘副主任
- 《统计学-基于Excel》(第 4 版)课件 贾俊平 第5-9章 概率分布- 时间序列分析和预测
- 中国计量大学《文科数学》2021-2022学年第一学期期末试卷
- 信阳师范大学《伦理学》2021-2022学年第一学期期末试卷
- 中国普通食物营养成分表(修正版)
- 20道长鑫存储设备工程师岗位常见面试问题含HR常问问题考察点及参考回答
- 抖音ip孵化合同范本
- 小升初语文总复习《文章主要内容概括》专项练习题(附答案)
- DL-T606.5-2009火力发电厂能量平衡导则第5部分-水平衡试验
- python程序设计-说课
评论
0/150
提交评论