各个编程语言都有自己的数据类型,当python需要接受其他语言或者网络传输来交互数据的时候,需要考虑到python的数据类型与其他平台之间交互问题。而python的struct就是解决这个问题的。

struct模块常用方法:

struct.pack()   #将python的值根据格式符转换为字符串(Python中没有字节类型,可以把这里的字符串理解为字节流或字节数组)。

struct.pack(fmt,v1,v2,...)     #fmt是格式字符串v1,v2表示python要转换的值

例:
将整数转换成字符串import struct a = 20
b = 400
str = struct.pack('ii',a,b)
print(str)
print(repr(str)) 输出结果为:
b'\x14\x00\x00\x00\x90\x01\x00\x00'
b'\x14\x00\x00\x00\x90\x01\x00\x00' #格式符'i':表示转换为int;'ii'表示有两个int变量。
#十六进制的0x00000014, 0x00001009分别表示20和400。
struct.unpack()   #刚好与struct.pack相反,用于将字节流转换成python数据类型,并返回一个元组。

方法:struct.unpack(fmt,string)

import struct

str = struct.pack('ii',20,30)
a1,a2 = struct.unpack('ii',str) print('a1:',a1)
print('a2:',a2) 输出结果为: a1: 20
a2: 30

Python模块:struct的更多相关文章

  1. python模块struct和subprocess

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

  2. Python模块struct(二进制数据服务)

    struct模块 Python没有专门处理字节的数据类型.但由于b'str'可以表示字节,所以,字节数组=二进制str. 而在C语言中,我们可以很方便地用struct.union来处理字节,以及字节和 ...

  3. Python学习——struct模块的pack、unpack示例

    he struct module includes functions for converting between strings of bytes and native Python data t ...

  4. c语言write与python的struct模块交互

    以下讲的都是用二进制形式打开文件.网上有很多struct模块的文章,下面是我做的小实验. 1.对于c里面的fwrite写入一个单字节,写的就是它的二进制.如3,写入文件就是二进制0x03,它并不是3的 ...

  5. python中struct模块及packet和unpacket

    转自:http://www.cnblogs.com/gala/archive/2011/09/22/2184801.html 我们知道python只定义了6种数据类型,字符串,整数,浮点数,列表,元组 ...

  6. Python:struct模块的pack、unpack

    mport struct pack.unpack.pack_into.unpack_from 1 # ref: http://blog.csdn<a href="http://lib. ...

  7. 【转】在Python的struct模块中进行数据格式转换的方法

    这篇文章主要介绍了在Python的struct模块中进行数据格式转换的方法,文中还给出了C语言和Python语言的数据类型比较,需要的朋友可以参考下 Python是一门非常简洁的语言,对于数据类型的表 ...

  8. 使用C/C++写Python模块

    最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...

  9. python 学习第五天,python模块

    一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...

随机推荐

  1. 基于mini2440的Tslib的移植

    软件平台: win7系统,虚拟机ubuntu12.04 mini2440开发板 tslib是电阻式触摸屏用于校准的一个软件库,是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波.去抖.校准等功能 ...

  2. SVN外链

    1 外链使用场景 使用Subversion进行版本管理时,有时需要将一些公共库或者开源库链接到自己项目中,为了同时做到与外部库实时更新,使用Subversion的外链功能,从而将外部的库当做本地项目的 ...

  3. Hibernate中的数据库方言(Dialect)

    在配置hibernate.cfg.xml时需指定使用数据库的方言: 例: <property name="dialect">org.hibernate.dialect. ...

  4. 26. linux查看端口占用情况

    linux系统下,查看端口占用情况的命令:lsof -i[root@www ~]# lsof -i

  5. js的数据类型

    关于js中的几大数据类型,估计大家都很熟悉:String.Number.Array.Bollean.Null.Undifine.Object: 从这其中,可以延伸出一个感念:基本数据类型和引用类型: ...

  6. Quartz.NET作业调度框架详解(转)

    Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不牺牲 ...

  7. vim命令的妙用

    进来看到了一篇博文,讲述的是无插件Vim编程技巧,然后看到里面还有一些其余的关于vim的博文,感觉值得收藏:酷 壳 – CoolShell.cn 这里挑选出其中一篇,这也是自己已经学习过的: 无插件V ...

  8. 偶的《javascript框架设计》终于出版

    #cnblogs_post_body p{ text-indent:2em!important; } 历时两年多,我的书终于付梓出版了.应各方面的要求,写软文一篇,隆重介绍一下此书对各位程序员的钱途有 ...

  9. Hibernate和Struts2整合的增、删、改、查

    1. 新建一个Web项目,准备好jar包和配置文件. 2. web.xml文件中添加过滤器 <?xml version="1.0" encoding="UTF-8& ...

  10. python的类与对象

    类与对象 1.什么是类 类和函数一样是程序编程的一种方式,在处理某些问题的时候类比函数更加适合让编程变得简化,在python里面函数式编程和类编程都是为了简化代码的一种编程方式,具体应用那个则由具体问 ...