1

我正在尝试解析传入的数据包,拆分一些值并将它们存储到各自的变量中。

这说明了我正在尝试做的事情:

Incoming = "\x00\x31\x00\x62\x00\x6a\x00\x61\x00\x61\x00\x61\x00\x71\x00\x71"
Incoming+= "\x00\x71\x00\x61\x00\x71\x00\x6a\x00\x71\x00\x00\x00\x55\x00\x4e"
Incoming+= "\x00\x45\x00\x00\x00\x61\x61\x61\x00\x00\x00"

print Incoming
>>> 1bjaaaqqqaqjqUNEaaa

我需要使用的字符串由 3 个空字节“\x00\x00\x00”分隔,所以它应该如下所示:

print Incoming
>>> 1bjaaaqqqaqjq UNE aaa

我需要做的是在var1中存储“1bjaaaqqqaqjq”,在var2中存储“UNE”,在var3中存储“aaa”。

我在想类似的东西:

Incoming = "\x00\x31\x00\x62\x00\x6a\x00\x61\x00\x61\x00\x61\x00\x71\x00\x71"
Incoming+= "\x00\x71\x00\x61\x00\x71\x00\x6a\x00\x71\x00\x00\x00\x55\x00\x4e"
Incoming+= "\x00\x45\x00\x00\x00\x61\x61\x61\x00\x00\x00"

pack = list(Incoming)
null = [i for i in range(len(pack)) if pack[i:i+3] == ['\x00','\x00','\x00']] 
for i in null:
   pack[i] = "\n"

print ''.join(pack)
>>>1bjaaaqqqaqjq
   UNE
   aaa

但是我的代码无法将这些值分配给它们各自的 var(var1、var2、var3 等)

任何帮助将不胜感激。

谢谢

4

1 回答 1

1

你是这个意思吗:

>>> Incoming = "\x00\x31\x00\x62\x00\x6a\x00\x61\x00\x61\x00\x61\x00\x71\x00\x71"
>>> Incoming+= "\x00\x71\x00\x61\x00\x71\x00\x6a\x00\x71\x00\x00\x00\x55\x00\x4e"
>>> Incoming+= "\x00\x45\x00\x00\x00\x61\x61\x61\x00\x00\x00"
>>>
>>> var1, var2, var3 = [e.replace('\x00','') for e in Incoming.split('\x00\x00\x00')[:3]]
>>> print var1, var2, var3
1bjaaaqqqaqjq UNE aaa
于 2012-09-05T22:16:54.780 回答