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)
复制代码

 

 

 

 

 

posted @   天子骄龙  阅读(420)  评论(0编辑  收藏  举报
编辑推荐:
· 基于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)
点击右上角即可分享
微信分享提示