私はそれを受け入れるようにプログラムされたハードウェアに2桁の16進数のバイトを送るために、Pythonでソケットライブラリを使用しようとしています。進数字のユーザーinputed文字列からバイトを作成するために、私はbytes.fromhexを使用しようとしている()クラスメソッドは、ここで説明:なぜbytes.fromhex()はいくつかの16進値を妙に扱いますか?
https://docs.python.org/dev/library/stdtypes.html#bytes.fromhexがなぜ次ん:
hexstring = "bb 0D 02 55 55 5A ce"
data = bytes.fromhex(hexstring)
print(data)
は私を与える:
b'\xbb\r\x02UUZ\xce'
の代わり:
b'\xbb\x0d\x02\x55\x55\x5a\xce'
?
そして、どうすれば2番目の出力を得ることができますか?私はPython 3.5を使用しています。
' '\のx55''があります印刷可能なASCII文字「U」、「\ x5A」は印刷可能なASCII文字「Z」、および「\ x0D」は通常はエスケープ文字列「\ r」で示されるASCII文字です。 ''\ x ..''のみの形式を表示する文字列が必要な場合は、16進コードが各文字に対して明示的に表示されますが、これはすでに 'hexstring'にあります。出力文字列がPythonコンソールによってどのように*表示されるか心配する必要はありません。コンテンツを処理し、それがどのシステムに表示されるかについて心配する方がおそらく大切です。 – jez