python--struct
当我们在 Python 中跟二进制数据打交道的时候,就要用到 struct 这个模块了。struct 模块为 Python 与 C 的混合编程,处理二进制文件以及进行网络协议交互提供了便利
格式字符串表:
import os import struct ''' 数据格式为 姓名 年龄 性别 职业 liming 18 男 教师 ''' fp = open('test.bin','wb') name = 'lily'.encode('utf-8') age = 18 sex = 'female'.encode('utf-8') job = 'teacher'.encode('utf-8') x=struct.pack('>4si6s7s', name,age,sex,job) #把各个变量按顺序转换成字节字符串 #参数1 格式字符串 看格式字符串表 #4s 4个字符串字节 # > 表示大端保存;< 表示小端保存 """ 小端:较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址。 大端:较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址 默认采用小端 """ fp.write(x) fp.flush() fp.close() # 将文件中写入的数据按照格式读取出来 fd = open('test.bin','rb') # 21 = 4 + 4 + 6 + 7 a=fd.read(23) x=struct.unpack('>4si6s7s',a) #还原变量值 #(b'lily', 18, b'female', b'teacher') fd.close() i=struct.calcsize('ii') #计算格式字符串所对应的结果的长度 print(i)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)