ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] Python提供了一个struct模块来解决bytes和其他二进制数据类型的转换。 struct的pack函数把任意数据类型变成bytes: ~~~ >>> import struct >>> struct.pack('>I', 10240099) b'\x00\x9c@c' ~~~ pack的第一个参数是处理指令,`'>I'`的意思是: `>`表示字节顺序是big-endian,也就是网络序,I表示4字节无符号整数。 后面的参数个数要和处理指令一致。 unpack把bytes变成相应的数据类型: ~~~ >>> struct.unpack('>IH', b'\xf0\xf0\xf0\xf0\x80\x80') (4042322160, 32896) ~~~ 根据`>IH`的说明,后面的bytes依次变为I:4字节无符号整数和H:2字节无符号整数。 所以,尽管Python不适合编写底层操作字节流的代码,但在对性能要求不高的地方,利用struct就方便多了