Python之路——struct模块

struct模块

# struct 模块 用来将数字字符串等转换成固定长度的字节
# format:
# x: pad byte (no data); c:char; b:signed byte; B:unsigned byte;
#   ?: _Bool (requires C99; if not available, char is used instead)
#   h:short; H:unsigned short; i:int; I:unsigned int;
#   l:long; L:unsigned long; f:float; d:double.
# Special cases (preceding decimal count indicates length):
#   s:string (array of char); p: pascal string (with count byte).
# Special cases (only available in native format):
#   n:ssize_t; N:size_t;
#   P:an integer type that is wide enough to hold a pointer.
# Special case (not in native mode unless ‘long long‘ in platform C):
#   q:long long; Q:unsigned long long
import struct
# a = struct.pack(‘i‘,4658)   # ‘i‘ 模式转换成4个字节
# print(a,len(a)) # b‘2\x12\x00\x00‘ 4
# b = struct.unpack(‘i‘,a)
# print(b)    # (4658,)
# print(b[0]) # unpack后的数据是一个元组

# a = struct.pack(‘f‘,5641564987)
# print(a,len(a)) # b‘2\x12\x00\x00‘ 4
# b = struct.unpack(‘f‘,a)
# print(b)    # (4658,)
# print(b[0]) # unpack后的数据是一个元组
# # 输出
# # b‘\xba!\xa8O‘ 4
# # (5641565184.0,)
# # 5641565184.0

原文地址:https://www.cnblogs.com/liuyankui163/p/8376593.html

时间: 2024-11-06 13:28:51

Python之路——struct模块的相关文章

浅析Python中的struct模块

最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结. 了解c语言的人,一定会知道struct结构体在c语言中的作用,它定义了一种结构,里面包含不同类型的数据(int,char,bool等等),方便对某一结构对象进行处理.而在网络通信当中,大多传递的数据是以二进制流(binary data)存在的.当传递字符串时,不必担心太多的问题,而当传递诸如int.char之

Python网络编程—struct模块的使用

struct模块的使用 1.原理: 将一组简单数据进行打包,转换为bytes格式发送.或者将一组bytes格式数据,进行解析. 2.接口使用 Struct(fmt) 功能: 生成结构化对象 参数:fmt 定制的数据结构 st.pack(v1,v2,v3....) 功能: 将一组数据按照指定格式打包转换为bytes 参数:要打包的数据 返回值: bytes字节串 st.unpack(bytes_data) 功能: 将bytes字节串按照指定的格式解析 参数: 要解析的字节串 返回值: 解析后的内容

Python之路36-logging模块

#很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging的日志可以分为 debug(), info(), warning(), error() and critical() 5个级别 import logging #打印日志 logging.warning("user [alex] attempted wrong password more than

Python之路28-sys模块

import sys #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 print(sys.path) #返回操作系统平台名称 print(sys.platform) #命令行参数List,第一个元素是程序本身路径 print(sys.argv) #退出程序,正常退出时exit(0) #sys.exit(0) #获取Python解释程序的版本信息 print(sys.version)

Python之路-常用模块(re模块)

一.正则表达式 定义:具有特殊含义符号组合到一起用来描述字符或字符串的一种方法.内嵌在Python中,通过 re模块实现,被编译成一系列字节码,由C编写的匹配引擎执行. 1.常用匹配模式 2.常用的re模块函数 (1).  re.match() 决定RE是否在字符串刚开始的位置匹配.//注:这个方法并不是完全匹配.当pattern结束时若string还有剩 余字符,仍然视为成功.想要完全匹配,可以在表达式末尾加上边界匹配符'$ 格式: re.match(pattern, string, flag

python之路——常用模块

 什么是模块? 常见的场景:一个模块就是一个包含了python定义和申明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1.使用python编写的代码(.py文件) 2.已被编译为共享库或DLL的C或C++扩展 3.包好一组模块的包 4.使用C编写并链接到python解释器的内置模块 为什么要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过pytho

Python不归路_logging模块

Logging模块学习 1.Logging的五个等级 debug:诊断性的信息 info:确认一切按预期运行 warning:警告性信息,如CPU负载过高,硬盘空间少 error:更严重的事情,但系统还能运行 critical:系统无法继续运行 这5个等级,也分别对应5种打日志的方法: debug .info .warning .error .critical.默认的是WARNING,当在WARNING或之上时才被跟踪. 2.将日志输出到屏幕 2.1简单输出 1 import logging 2

python之路---23 模块 os sys pickle json

一.   os模块 主要是针对操作系统的 用于文件操作 二.    sys 模块 模块的查找路径   sys.path 三   pickle 模块 1.  pickle.dumps(对象) 序列化  把对象拍散成字节 2.pickle.loads(字节) 反序列化,把字节整合成对象 3.pickle.dump(对象,文件) 把对象打散写入到文件, 序列化的内容不是给人看的 多个对象时  可以存入列表 4.pickle.load(文件) 读取文件 四.  json 模块 可以认为是python中的

Python之路43-paramiko模块

paramiko模块 通过ssh2协议远程登录服务器执行命令或上传下载文件 ssh 公钥密钥连接 RSA -非对称密钥验证 公钥 public key 私钥 private key 10.0.0.31 ----> 10.0.0.41 私钥             公钥 10.0.0.31先生成一对公钥和私钥,将公钥给要被登录的机器 ssh-keygen生成一对公钥私钥,id_rsa.pub公钥,id_rsa私钥 将公钥放到.ssh/authorized_keys下面 ssh-copy-id &quo