Rom*_*man 2 python arrays string
我每天都在使用Ruby,但我在Python中遇到了问题.我发现这种语言非常相似...但我从Ruby迁移有一些问题:)
请帮我在python中转换这个动作:
string = "qwerty2012"
(var, some_var, another_var) = string.unpack("a1a4a*")
Run Code Online (Sandbox Code Playgroud)
这应该从string返回三个带有解压缩值的变量:
var = "q" # a1
some_var = "wert" # a4
another_var = "y2012" # a*
Run Code Online (Sandbox Code Playgroud)
帮我用Python代表它谢谢!
Python确实有一个名为struct的类似模块.它缺乏抓取其余字符串的能力,就像Ruby和PHP从Perl中取出一样.你几乎可以到达那里:
>>> import struct
>>> s = 'qwerty2012'
>>> struct.unpack_from('1s4s', s)
('q', 'wert')
>>> def my_unpack(format, packed_string):
... result = []
... result.extend(struct.unpack_from(format, packed_string))
... chars_gobbled = struct.calcsize(format)
... rest = packed_string[chars_gobbled:]
... if rest:
... result.append(rest)
... return result
...
>>> my_unpack('1s4s', 'qwerty2012')
['q', 'wert', 'y2012']
>>> my_unpack('1s4s', 'qwert')
['q', 'wert']
>>> [hex(x) for x in my_unpack('<I', '\xDE\xAD\xBE\xEF')]
['0xefbeadde']
Run Code Online (Sandbox Code Playgroud)
我祝愿struct模块实现Perl的其余部分unpack和pack因为他们是非常有用的功能翻录除了二进制数据包,但很可惜.