Python 的结构体函数 struct pack, unpack 用法详解
一 python 结构体
* python struct 模块可以用来在存储二进制文件,广泛用在文件系统,网络连接领域。
* 它可以用在c语言和python语言之间的数据的格式转换。
二 Python Struct Functions
这里有5个重要的数据结构模块函数:pack(),unpack(),calcsize(),pack_info()和unpack_from(). 这些函数一般用来把其他文件转成二进制文件.
常用的数据格式有:
?: boolean
h: short
l: long
i: int
f: float
q: long long int
三 函数:Python struct.pack()
这个函数的作用就是把一系列植包装成字符串:输入参数必须要和输入格式严格匹配:
example:
import struct
var = struct.pack('hhi',5,6,15)
print(var)
var = struct.pack('iii',19,20,25)
print(var)
结果:
b'\x05\x00\x06\x00\x0f\x00\x00\x00'
b'\x13\x00\x00\x00\x14\x00\x00\x00\x19\x00\x00\x00'
四 函数:Python struct.unpack()
函数unpack的作用是把变量转换成特定格式的初始化模样。这个函数一直返回一个: tuple 结构体,哪怕是只有一个变量。下面是unpack的一个例子:
import struct
var = struct.pack('hhi',5,6,15)
print(var)
ivar = struct.unpack('hhi',var)
print(ivar)
很明显,需要在入参中输入需要转换的原始变量的类型才行:
b'\x05\x00\x06\x00\x0f\x00\x00\x00'
(5, 6, 15)
五 函数:Python struct calcsize()
该函数的作用是计算和返回特定字符串的长度,如下所示:
import struct
var = struct.pack('hhi',5,6,15)
print(var)
print("Size of the string representation:%{}.".format(struct.calcsize('hhi')))
结果:
b'\x05\x00\x06\x00\x0f\x00\x00\x00'
Size of the string representation:%8.
Python 的结构体函数 struct pack, unpack 用法详解的更多相关文章
- Python中第三方库Requests库的高级用法详解
Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...
- C#结构体指针的定义及使用详解(intptr的用法)
在解析C#结构体指针前,必须知道C#结构体是如何定义的.在c#中同样定义该结构体. C#结构体指针之C#结构体的定义: [StructLayout(LayoutKind.Sequential)] pu ...
- Python re 模块findall() 函数返回值展现方式详解
findall 函数: 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表. 注意: match 和 search 是匹配一次 findall 匹配所有,mat ...
- Python中内置的日志模块logging用法详解
logging模块简介 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用.这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/P ...
- struct的匿名用法详解
Go只提供类型而不用写字段名的方式,也就是匿名字段,也称为嵌入字段. 当匿名字段是一个struct的时候,那么这个struct所拥有的全部字段都被隐式地引入了当前定义的这个struct. 举个例子,看 ...
- C的结构体函数
#include<stdio.h> #include<string.h> struct Test { int age; ]; double score; }std1; //结构 ...
- python 传递结构体指针到 c++ dll
CMakeLists.txt # project(工程名) project(xxx) # add_library(链接库名称 SHARED 链接库代码) add_library(xxx SHARED ...
- C语言结构体(struct)常见使用方法
基本定义:结构体,通俗讲就像是打包封装,把一些变量有共同特征(比如同属于某一类事物的属性)的变量封装在内部,通过一定方法访问修改内部变量. 结构体定义: 第一种:只有结构体定义 struct stuf ...
- Go语言基础之8--面向对象编程1之结构体(struct)
一.结构体详解 1.1 声明和定义 1.Go中面向对象是通过struct来实现的, struct是用户自定义的类型 2.Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数 ...
- C 语言实例 - 使用结构体(struct)
C 语言实例 - 使用结构体(struct) C 语言实例 C 语言实例 使用结构体(struct)存储学生信息. 实例 #include <stdio.h> struct student ...
随机推荐
- .NET NativeAOT 指南
.NET NativeAOT 指南 随着 .NET 8 的发布,一种新的"时尚"应用模型 NativeAOT 开始在各种真实世界的应用中广泛使用. 除了对 NativeAOT 工具 ...
- 学生成绩管理系统|Python小应用练习
题目要求 实现学生成绩管理系统 输入学生成绩信息序列,获得成绩从高到低.从低到高.按某一门成绩的排列,相同成绩都按先录入排列在前的规则处理. 数据如下:(数据规则:学生姓名 高数成绩 英语成绩 大物成 ...
- TActionManager Delphi 超级方便的快捷键 草草
delphi 中用快捷键 草 实在是 太简单了 . 自己摸索出来的 方法 --------------------------------------------------------------- ...
- .NET 云原生架构师训练营(模块二 基础巩固 引入)--学习笔记
2.1 引入 http协议 web server && web application framework .net 与 .net core asp .net core web api ...
- 【framework】surfaceflinger启动流程
1 前言 surfaceflinger 的作用是合成来自 WMS 的 Surface 数据,并发送到显示设备. SurfaceFlinger 服务不同于 AMS.WMS.IMP.PMS.DMS ...
- 全排列II
全排列II 给定一个可包含重复数字的序列,返回所有不重复的全排列. 示例 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] 题解 /** * @param { ...
- Swoole从入门到入土(11)——HTTP服务器[Request]
http服务器的本质是应答式的服务器.我们只需关注onRequest事件中的request(请求)和response(响应)对象.让我们一起回顾一下onRequest事件: $http->on( ...
- ckeditor使用技巧总结
介绍 官方开发者文档:CKEditor 4 documentation 技巧总结 1.挑选需要的插件,打包下载 参考:CKEditor 4.4.1 添加代码高亮显示插件功能--使用官方推荐Code S ...
- 使用spring boot jpa进行增删改查
项目地址:https://gitee.com/indexman/spring_boot_in_action 编写实体类User package com.laoxu.springboot.entity; ...
- Java集合框架学习(十五) ListIterator接口详解
ListIterator介绍 一个为list对象设计的迭代器,允许开发人员在2个方向上迭代,修改和获得list迭代位置. ListIterator 没有所谓当前元素. 它的游标位置总是位于previo ...