1 / 4
文档名称:

python.转换到C结构或从C结构转换回来.doc

格式:doc   大小:34KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

python.转换到C结构或从C结构转换回来.doc

上传人:小点 2019/6/5 文件大小:34 KB

下载得到文件列表

python.转换到C结构或从C结构转换回来.doc

文档介绍

文档介绍:Forpersonaluseonlyinstudyandresearch;mercialuse芈转换到C结构或从C结构转换回来膄struct模块允许创建一个等效于C结构的字符串,可以读写那些非Python程序生成的二进制文件。或者用于不同程序的网络通信。因为pickle模块的数据类型只能被Python识别。节使用struct需要使用格式字符串,(format,v1,v2,...)。格式字符如下:袈字符蚆C类型羃Python类型莁c艿Char莈长度为1的字符串羆s蒁char[]蚀字符串袆p螅(pascal字符串)薁字符串肁i薈Int薄整型(4)蚁I蒂Unsignedint羅整型或长整型*薇b蚁Signedchar蚈整型螇B莅unsignedchar螁整型聿h葿Short肄整型袁H蒀unsignedshort袇整型袃l羁Long袁整型虿Long袆unsignedLong肀长整型羈f肇Float蚅浮点型膀d荿Double蝿浮点型蒄x蒄(padstyle)螀-芇P蒇void*薄整型或长整型膁带有星号的表示依赖于平台的指针是32位还是16位。罿例如,如下的C结构的等价物用:芆struct{蚄inta;薂intb;莆charc;};采用值10,20,'Z',如下:>>>importstruct>>>z=('iic',10,20,'Z')>>>z'\012\000\000\000\024\000\000\000z'(format,data),返回元组:>>>('iic',z)(10,20,'Z')传递给unpack的格式字符串一定要说明字符串中的所有数据,否则会产生异常。(format)可以计算给定的格式字符串占用的字节数。可以在格式字符前加上一个编号,表示这个数据类型重复的次数。为了便于理解,可以在格式字符串中的格式字符之间加入空格。重复器编号的运行方式与's'(字符串)格式字符稍有差别。重复器会告诉字符串的长度(5s意味着5个字符的字符串)。0s意味着一个空字符串,而0c意味着0字符串。如果C的int和long的大小相同,T格式字符会把给定的编号解包为Python长整型。如果Cint比Clong小,T把编号转换为Python整数。'p'格式字符串支持pascal字符串。这种字符串使用第一个字节存储字符串长度,所以最大长度为255字节,其余的截断。如果提供了重复器则是指定整个字符串的字节数,包含长度字节。如果字符串小于指定字节数,则pack会添加空的填充字符。默认时,struct会把字节顺序和结构成员对齐使用当前平台的C编译器使用的格式。通过下表列出的某个修饰符启动自己的格式字符串,可以超越这种行为。例如使用网络序:>>>('ic',65535,'D')#本机字节序为高序优先'\377\377\000\000D'>>>('!ic',65535,'D')#强制网络字节序'\000\000\377\377D'修饰符字节顺序对齐大小<高序优先(little-endian)无标准>或!低序优先(网络)无标准=内在的无标准@(默认)内在的内在的内在的当使用了一个大小为"stand