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

何时/为什么我应该使用python中的struct library进行打包和解包?,python,python-2.7,struct,pack,Python,Python 2.7,Struct,Pack,我不明白什么时候应该在python的结构库中使用pack和unpack函数? 我也不知道如何使用它们? 读过之后,我了解到它们是用来将数据转换成二进制的。但是,当我运行一些示例时,例如: >>> struct.pack("i",34) '"\x00\x00\x00' >>> struct.pack("i",34) '"\x00\x00\x00' 我弄不懂其中的道理。 我想了解它的用途,这些转换是如何发生的,“\x”和其他符号代表/意味着什么,以及解包是如何

我不明白什么时候应该在python的结构库中使用pack和unpack函数? 我也不知道如何使用它们? 读过之后,我了解到它们是用来将数据转换成二进制的。但是,当我运行一些示例时,例如:

>>> struct.pack("i",34)
'"\x00\x00\x00'
>>> struct.pack("i",34)
'"\x00\x00\x00'
我弄不懂其中的道理。 我想了解它的用途,这些转换是如何发生的,“\x”和其他符号代表/意味着什么,以及解包是如何工作的

我不明白什么时候应该在python的结构库中使用pack和unpack函数

那么你可能没有理由使用它们

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

但是,当我运行一些示例时,例如:

>>> struct.pack("i",34)
'"\x00\x00\x00'
>>> struct.pack("i",34)
'"\x00\x00\x00'
我弄不懂其中的道理

\x
符号用于表示
字节
对象的各个字节
\x00
表示字节的值是0,
\x02
表示字节的值是2,
\x10
表示字节的值是16,等等。
是字节34,所以我们在字符串的这个视图中看到的是
而不是
\x22
,但是
'\x22\x00\x00'
“\x00\x00\x00'
是相同的字符串


如果您需要了解数字,那么这可能有助于您了解一些背景知识。

Python文档中的信息和示例是否有问题?再见,谢谢。你能解释一下为什么从一台计算机向另一台计算机发送数据时会在网络中使用它吗?我们为什么不发送纯文本呢?为什么我们看到的是“'”而不是“\x22”(我知道它表示ASCII码,但整数表示与“'”有什么关系?@shiva,很多协议都是原始数据,而不是文本,因为它可以更小更快地发送这些东西。现在,文本格式比以前非常普遍,但对于高性能的东西来说肯定不常见。@shiva,为了方便起见,容易表示的字符在ByTestRing中由ASCII字母表示,而不仅仅是数字。由于0x22映射到
,Python只使用
,由于0x71映射到
q
,Python将字符串
“\x71”
显示为
“q”
。可能会为您提供一些关于字符串如何工作的指导。