python中pack什么意思_Python struct.pack如何理解其原理

def setUTF(self, value):

"""

"""

tag = '>h' if self.endian == HIGHT_ENDIAN else 'h'

length = len(value)

self.buffer += (struct.pack(tag, length))

tag = '%ss' % (length)

self.buffer += (struct.pack(tag, value))

return True

还是不能理解好pack,有人可以帮忙回答下不

因为涉及二进制串和字节处理,所以包含的知识是比较底层的。首先要知道 struct 中的 pack 和 unpack 是用来完成数据结构和字节流之间转换的,也就是说,这两个函数是在转换数据的表示形式,并不会改变数据。

比如 int a = 4; 这里的 a 转换通过'i' format 成字节流为: \x04\x00\x00\x00 (大端序为 \x00\x00\x00\x04)。

以上或者反过来。

那么简洁地说:为什么要转换?

为了迎合处理字节流,比如 构造网络包来发送,或者解析接收的网络包。

怎么转?

这就是函数(主要就是 pack 和 unpack)的使用方法。 pack(format, value1, value2...) unpack(format, string)

其中:

pack函数将普通的数据结构转成字节流,

你可能感兴趣的:(python中pack什么意思)