1

I need convert this array

data = [
#SHO
0x56, 0x0d, 
#CMD
0x1, 0x00, 0x00, 0x00, 
#ARG
0x1, 0x0,
#SIZE
0x02, 0x00, 0x00, 0x00, 
#OPAQUE
0x01, 0x02,
#RESERVED
0x00, 0x00
]

and produce a string

# converted data into s
print s
4

3 に答える 3

4

それをバイトの文字列として読み取ることを意味しますか?

print bytearray(data)
于 2012-07-10T15:27:08.520 に答える
3
In [16]: ''.join(str(i) for i in data)
Out[16]: '861310001020001200'

または(おそらく@ thg435の提案に従って):chr()の代わりに使用するstr()

In [25]: ''.join(chr(i) for i in data)
Out[25]: 'V\r\x01\x00\x00\x00\x01\x00\x02\x00\x00\x00\x01\x02\x00\x00'

これはあなたが探しているものですか?そうでない場合、希望する出力を提供できますか?

于 2012-07-10T15:21:50.237 に答える
0

(質問があいまいなので、現在の投稿を組み合わせる。)

バイトを16進数で出力します。

>>> ''.join(('%2s' % hex(d)[2:]).replace(' ', '0') for d in data)
'560d0100000001000200000001020000'

バイトを10進数として出力します。

>>> ''.join(str(i) for i in data)
'861310001020001200'

バイトを文字として出力します。

>>> print bytearray(data)
☺   ☺ ☻   ☺☻

または同等に:

>>> print ''.join(map(chr, data))
☺   ☺ ☻   ☺☻
于 2012-07-10T15:26:56.100 に答える