python 二进制文件读写

struct 进行二进制文件读写

struct是比较常用的对象序列化,二进制读写模块

pack(fmt, v1, v2, …) 按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结构体的字节流)
i int
f float
? _Bool
在这里插入图片描述

n=13000
x=96.45
b=True
sn=struct.pack(‘if?’,n,x,b) #序列化
把整型,浮点型,和布尔型,序列化,放在sn的序列化的二进制流中 b’\xc82\x00\x00f\xe6\xc0B\x01’ 长度为9
f.write(s.encode()) #字符串直接编码为字节串写入

读取

在这里插入图片描述
读取9个字节,将其解码,放在元组中
字符串写入时,利用encode编码的,解码时对应使用decode().

python的二进制文件,主要注意,写入时编码时用什么,解码时对应使用什么进行转换。

写入时使用pickle.dump(),则读取时就应用pickle.load()
写入时使用struct.pack()将其转换为bytes行,对应就需用struct.unpack()将bytes型转换为其原来类型。
使用int.tobytes()将整型转换为bytes型,需用int.frombytesI()将其转换为整型。int.to_bytes()以及int.from_bytes()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值