何时/为什么我应该在python中使用struct library来打包和解包?

时间:2016-02-08 13:53:37

标签: python python-2.7 struct pack

我无法理解我何时应该在python的struct库中使用pack和unpack函数? 我也不明白如何使用它们? 阅读之后,我理解的是它们用于将数据转换为二进制。但是当我运行一些例子时:

>>> struct.pack("i",34)
'"\x00\x00\x00'

我无法理解它。 我想了解它的目的,这些转换是如何发生的,以及' \ x'和其他符号代表/意味着以及如何解包工作。

1 个答案:

答案 0 :(得分:4)

  

我无法理解我何时应该在python的struct库中使用pack和unpack函数?

然后你可能没有理由使用它们。

其他人处理具有低级二进制打包的网络和文件格式,其中struct非常有用。

  

然而,当我运行一些例子时:

>>> struct.pack("i",34)
'"\x00\x00\x00'
     

我无法理解它。

\x表示法用于使用hexadecimal表示bytes对象的各个字节。 \x00表示字节值为0,\x02表示字节值为2,\x10表示该字节值为16,等等。"为字节34,因此我们在此字符串视图中看到"而不是\x22,但'\x22\x00\x00\x00''"\x00\x00\x00'是相同的字符串

如果这是您理解数字所需的级别,那么

http://www.swarthmore.edu/NatSci/echeeve1/Ref/BinaryMath/NumSys.html可能对您有所帮助。