`
westice
  • 浏览: 115591 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

struct模块,(pack、unpack) 简单用法

阅读更多

    python中struct方便对底层数据进行操作,比如把一个数 i = 65536保存为一个4B的int型数据

s0 = struct.pack("<I",i)

 

   s0为一个字符串,长度为4,即占四个字节,这样方便传输与保存二进制数据。

   "<I",意思是按小端保存,>为大端,I为无符号整型。

   还有其它类型参数:

   c:char      b:signed byte                 B:unsigned byte

   h:short    H:unsigned short            i:int; I:unsigned int

   l:long       L:unsigned long              f:float

   d:double  s:string (array of char)   p: pascal string (with count byte)

   q:long long    Q:unsigned long long

   unpack用于还原数据

   假设收到s0这个字符串

 

i2 = struct.unpack("<I",s0)

   i2为一个元组型,i2[0]即还原的整型数字

 

 

 

分享到:
评论

相关推荐

    Python使用struct处理二进制(pack和unpack用法)

    `struct`模块包含了三个关键函数:`pack()`、`unpack()`和`calcsize()`。 1. `pack(fmt, v1, v2, ...)`: 这个函数用于将一系列值根据指定的格式`fmt`打包成一个字节串。`fmt`是一个包含格式代码的字符串,用于定义...

    pickle与struct模块简介

    ### Struct模块详解 #### 模块概述 `struct`模块是Python标准库的一部分,用于处理字节流数据。它提供了将Python数据类型转换为字节流(通常用于网络传输或文件存储),以及将字节流解析回Python数据类型的功能。 ...

    Python标准库笔记struct模块的使用

    在使用struct模块时,可以通过模块级函数直接进行数据转换,也可以实例化Struct类并调用其方法来完成。实例化Struct类通常会更有效率,因为它可以重用已经编译的格式表示。 默认情况下,struct模块打包数据时会使用...

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

    ### 在Python的Struct模块中进行数据格式转换的方法 #### 概述 Python作为一种高级编程语言,在处理不同系统间的数据交换时需要确保数据的一致性和正确性。尤其在跨平台通信中,不同操作系统对数据类型的存储方式...

    使用python的struct库实现IP地址计算,根据一个int值.zip

    以上就是使用Python的`struct`库实现IP地址计算的基本方法。通过这种方法,我们可以方便地进行IP地址的存储、比较和计算,这对于网络编程尤其有用。例如,你可以用这种方法计算两个IP地址之间的网络掩码,或者对IP...

    使用Python进行二进制文件读写的简单方法(推荐)

    总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块。 python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string...

    app_struct_pythonstruct_freeood_

    在Python编程中,`struct`库是一个非常重要的模块,它提供了与C语言结构化数据类型进行转换的功能。在本项目"app_struct_pythonstruct_freeood_"中,主要关注的是如何使用`struct`库来处理IP地址的计算,特别是将一...

    python 和C语言数据结构解析于构建

    ##### `struct`模块的使用方法 - **格式字符**:`struct`模块的核心在于使用特定的格式字符来定义数据类型。 - `I`: 无符号整型 - `i`: 有符号整型 - `f`: 单精度浮点数 - `d`: 双精度浮点数 - `c`: 字符 - `s...

    Python中struct模块对字节流/二进制流的操作教程

    下面我们将深入探讨`struct`模块的使用方法及其核心功能。 ### `struct`模块的基本用法 `struct`模块提供了三个主要的函数:`pack()`、`unpack()`和`calcsize()`。 1. **`pack(fmt, v1, v2, ...)`**: 这个函数...

    Python内建模块struct实例详解

    在提供的实例中,可以看到如何使用`calcsize()`来计算不同格式字符串的数据大小,以及`pack()`和`unpack()`的用法。`pack_into()`和`unpack_from()`这两个函数与`pack()`和`unpack()`类似,但它们允许在已有的缓冲区...

    对python 自定义协议的方法详解

    接下来,我们通过一个具体的例子来详细解释如何使用`struct`模块来实现一个简单的自定义协议。 ##### 3.1 定义异常类 首先,我们需要定义一个异常类`E`,用于在协议解析过程中遇到错误时抛出异常: ```python ...

    struct.nim:Nim的类似Python的“ struct”

    接着,`pack`和`unpack`函数是`struct.nim`模块的关键,它们用于将结构体实例转换为字节序列(打包)和从字节序列还原结构体实例(解包)。这两个函数支持指定字节顺序(endianness),这对于跨平台操作非常有用。...

    PYTHON.转换到C结构或从C结构转换回来.pdf

    Python的`struct`模块是处理二进制数据的重要工具,它允许我们将Python数据类型转换为C语言结构体的字节序列,反之亦然。这对于与非Python程序...通过熟练掌握其使用方法,可以更有效地处理各种复杂的二进制数据场景。

    Python程序设计-3期(KC017) E83.docx

    在Python中,`struct`模块提供了一种打包和解包数据结构的方法,包括整数。例如,`struct.pack("@i", size)`将整数`size`打包为网络字节序的4字节整数,而`struct.unpack("@i", data)`则将接收到的4字节数据解包回...

    「python.转换到C结构或从C结构转换回来」.docx

    `struct` 模块的核心功能在于其 `pack()` 和 `unpack()` 方法,它们分别用于将Python对象序列化为C兼容的二进制格式,以及将C兼容的二进制数据解析回Python对象。这些方法都需要一个格式字符串来指定数据的布局和...

    python将ip地址转换成整数的方法

    在上述示例中,我们还使用了`struct`模块的`pack()`和`unpack()`函数: 1. `struct.pack(format, value)`:这个函数根据指定的格式字符串将Python值打包为字节序列。在IP地址转换中,我们通常使用'!L'作为格式字符...

    Python二进制文件读取并转换为浮点数详解

    对于较小的二进制文件,可以直接一次性读取整个文件,然后使用`struct.unpack()`方法进行转换。例如,假设有一个名为`filename`的二进制文件,其中存储了100行、每行1025个浮点数的数据。 ```python import numpy ...

    二进制文件并一次性读出

    如果是用Python列表写的,可以使用`struct`模块的`unpack`方法: ```python data_size = len(arr) # 假设你知道数组的长度 unpacked_data = struct.unpack('i' * data_size, f.read(data_size * 4)) # int32占4...

    Python程序设计-3期(KC017) E84.docx

    `struct.calcsize()`计算数据的大小,`struct.unpack()`解包接收到的数据,`struct.pack()`打包数据以便发送。 - `readString()`和`writeString()`类似,但处理字符串,先发送字符串长度,再发送实际字符串,确保...

Global site tag (gtag.js) - Google Analytics