使用struct的pack和unpack进行二进制数据的读写

直接看例子吧。

import struct v = 123 d = 456.123 url = "http://www.xxx.cn" base = "nothing" f = open("protocol.bin", "wb") fmt = "ifi%dsi%ds" % ( len(url), len(base) ) # 如何使用对应关系,请查看python的struct帮助文档 bytes = struct.pack(fmt, v, d, len(url), url, len(base), base) # 在字符串前,多加4字节,表示后面字符串的长度 f.write(bytes) f.close() f = open("protocol.bin", "rb") v = f.read(4) v = struct.unpack("i", v)[0] print v d = f.read(4) d = struct.unpack("f", d)[0] print d sl = f.read(4) sl = struct.unpack("i", sl)[0] # 读取第一个字符串的长度 url = f.read(sl) print url sl = f.read(4) sl = struct.unpack("i", sl)[0] base = f.read(sl) print base f.close() 

 

你可能感兴趣的:(struct,python,url,文档,import)