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

ただし、私のコードでは、これらの値をそれぞれの変数(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 に答える