Jed*_*edi 7 python unpack pack
在Python结构中打包一个整数后,即使它只包含一个项目,解包也会产生一个元组.为什么拆包会返回一个元组?
>>> x = struct.pack(">i",1)
>>> str(x)
'\x00\x00\x00\x01'
>>> y = struct.unpack(">i",x)
>>> y
(1,)
Run Code Online (Sandbox Code Playgroud)
请参阅doc first struct doc
struct.pack(fmt,v1,v2,...)
返回一个字符串,其中包含根据给定格式打包的值v1,v2,.... 参数必须与格式所需的值完全匹配.
-
struct.unpack(fmt,string)
根据给定的格式解压缩字符串(可能由pack(fmt,...)打包).结果是一个元组,即使它只包含一个项目.该字符串必须包含格式所需的数据量(len(字符串)必须等于calcsize(fmt)).
因为struct.pack定义为struct.pack(fmt, v1, v2, ...).它接受一个非keyworded参数列表(v1, v2, ...,aka *args),所以struct.unpack需要返回一个像对象一样的列表,这就是为什么元组.
如果你认为打包是很容易理解的
x = struct.pack(fmt, *args)
args = struct.unpack(fmt, x) # return *args
Run Code Online (Sandbox Code Playgroud)
例:
>>> x = struct.pack(">i", 1)
>>> struct.unpack(">i", x)
(1,)
>>> x = struct.pack(">iii", 1, 2, 3)
>>> struct.unpack(">iii", x)
(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5236 次 |
| 最近记录: |