h%ds" % len(string), len(string), string) prin-6ren">
gpt4 book ai didi

Python 结构解包

转载 作者:太空狗 更新时间:2023-10-30 00:52:10 27 4
gpt4 key购买 nike

这个小问题在过去一个小时左右一直困扰着我。

string = b'-'
t = struct.pack(">h%ds" % len(string), len(string), string)
print(t)

这个包的结果是 b'\x00\x01-'

我遇到的问题是我无法弄清楚如何解压结果 b'\x00\x01-' 以便它只是 '-',是的。我知道我可以删除前面的废话,但它变得有点复杂。我试图在这里简化它。希望有人能帮助我。 :)

最佳答案

通常您不会使用struct.pack 将长度 header 和值放在一起。相反,您只需执行 struct.pack(">h", len(data)),通过线路发送它(例如在网络协议(protocol)中),然后发送数据。无需创建新的字节缓冲区。

在你的情况下,你可以简单地做:

dataLength, = struct.unpack(">h", t[:2])
data = t[2:2+dataLength]

但正如我所说,例如,如果您有一个基于套接字的应用程序,它会像这样:

header = receive(2)
dataLength, = struct.unpack(">h", header)
data = receive(dataLength)

关于Python 结构解包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5161917/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com