Python内建模块struct实例详解

Python内建模块struct实例详解,第1张

Python内建模块struct实例详解

本文研究的主要是Python内建模块struct的相关内容,具体如下。

Python中变量的类型只有列表、元祖、字典、集合等高级抽象类型,并没有像c中定义了位、字节、整型等底层初级类型。因为Python本来就是高级解释性语言,运行的时候都是经过翻译后再在底层运行。如何打通Python和其他语言之间的类型定义障碍,Python的内建模块struct完全解决了所有问题。

知识介绍:

在struct模块中最最常用的三个:

(1)struct.pack:用于将Python的值根据格式符,转换为字符串(因为Python中没有字节(Byte)类型,可以把这里的字符串理解为字节流,或字节数组)。
(2)struct.unpack: 刚好与struct.pack相反,用于将字节流转换成python数据类型,该函数返回一个元组。
(3)struct.calcsize: 计算格式字符串所对应的结果的长度。

转换过程中遇到的格式 *** 作:

格式符 C语言类型 Python类型 x pad byte no value c char string of length 1 b signed char integer B unsigned char integer ? _Bool bool h short integer H unsigned short integer i int integer I unsigned int integer or long l long integer L unsigned long long q long long long Q unsigned long long long f float float d double float s char[] string p char[] string P void * long

实例详解:
#!/usr/bin/python
# -*- coding:utf-8 -*-
'''测试struct模块'''
from struct import *
import array

def fun_calcsize():
  print 'ci:',calcsize('ci')#计算格式占内存大小
  print '@ci:',calcsize('@ci')
  print '=ci:',calcsize('=ci')
  print '>ci:',calcsize('>ci')
  print 'ic:',calcsize('>ic')
  print 'i',a)[0])#因为pack返回的是元组,即使只有一个元素也是元组的形式
  print '小端:',hex(unpack('ci: 5
  ic: 5
       0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88
  unpack       0x11223344 0x55667788
  pack_into   0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88
  pack_from     0x11223344 0x55667788
  小端:
  pack         0x44 0x33 0x22 0x11 0x88 0x77 0x66 0x55
  unpack       0x11223344 0x55667788
  pack_into   0x44 0x33 0x22 0x11 0x88 0x77 0x66 0x55
  pack_from     0x11223344 0x55667788
  test
  字符1的二进制: 0x31
  字符2的二进制: 0x32
  字符3的二进制: 0x33
  字符4的二进制: 0x34
  大端:0x31323334
  小端:0x34333231
  '''

本实例所用Python软件环境:win10+anaconda3+pycharm,Python版本:3.6

总结

以上就是本文关于Python内建模块struct实例详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3304146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-05
下一篇 2022-10-05

发表评论

登录后才能评论

评论列表(0条)

保存