0

ソケットを介してリモート ハードウェアに Hex データを送信しようとしています。私が使用している方法は、一部のデータでは機能しますが、他のデータでは機能しません。例を次に示します。

packet_list = ["00","00","00","00","00","05","FF","70","00","00","00"]
packet_list = [(int(x,16)) for x in packet_list]
packet_list = [(chr(x)) for x in packet_list]

これは以下を出力します:

['\x00', '\x00', '\x00', '\x00', '\x00', '\x07', '\xff', 'r', '\x00', '\x00', '\x06', '\x00', '\x00']

これは私が望むものに非常に近いですが、「r」文字は必要ありません。代わりに、70 の「16 進」バージョン (\x70) にする必要があります。chr() は int 114 の ASCII 表現を提供しているだけだと思いますが、本当に必要なのは、16 進数の前に \x を含む文字列を単純に持つことです。

4

3 に答える 3

-1

まず、すべての + をカンマに置き換えます。1 つの大きな文字列要素を持つリストを作成しているだけです。

packet_list = ["00","00","00","00","00","05","FF","70","00","00","00"]
packet_list = [hex(int(x, 16)) for x in packet_list]
print packet_list

出力:

['0x0'、'0x0'、'0x0'、'0x0'、'0x0'、'0x5'、'0xff'、'0x70'、'0x0'、'0x0'、'0x0']

于 2013-10-31T23:12:54.390 に答える