Python像PHP一样解压缩

时间:2015-06-08 16:55:59

标签: python unpack

PHP我会这样做:

$res = unpack('C*', "string");

$res变量将是一个大小为6的数组:

Array ( [1] => 115 [2] => 116 [3] => 114 [4] => 105 [5] => 110 [6] => 103 ) 

我想在Python中做同样的伎俩。我试过这个:

>>> from struct import unpack
>>> unpack("s","string")

但在这种情况下我收到一个错误:

struct.error: unpack requires a string argument of length 1

我只是想知道 - 为什么长度为1,如果" s" format代表字符串?我怎样才能实现同样的东西,比如PHP?

1 个答案:

答案 0 :(得分:4)

这是因为struct.unpack格式s表示"字符串" 。默认情况下,它是一个1字符串,否则你必须指定长度,例如10s表示10个字符串。

无论如何, Python字符串的行为类似于不可变的字符数组,因此您可以执行s[3]并获取第4个(从零开始)的字符。如果你需要明确地将字符串分解为字典(类似于PHP关联数组),你可以这样做:

 s = dict(enumerate("string"))

但我强烈建议不要这样做。