文字列に16進数のデータがあります。バイトごとに文字列を解析する必要がありますが、ドキュメントを読むことによって、バイト単位でデータを取得する唯一の方法はf.read(1)関数を使うことです。Pythonの文字列からバイトを読み取る
リスト、配列、またはバイトごとにアクセスできる構造のいずれかに、16進数の文字列を解析するにはどうすればよいですか。
文字列に16進数のデータがあります。バイトごとに文字列を解析する必要がありますが、ドキュメントを読むことによって、バイト単位でデータを取得する唯一の方法はf.read(1)関数を使うことです。Pythonの文字列からバイトを読み取る
リスト、配列、またはバイトごとにアクセスできる構造のいずれかに、16進数の文字列を解析するにはどうすればよいですか。
mystring = "a1234f"
data = list(mystring)
データは、各要素が文字列の文字であるリストです。
a = 'somestring'
print a[0] # first byte
print ord(a[1]) # value of second byte
(x for x in a) # is a iterable generator
他のシーケンスと同じように、文字列を反復処理できます。
for c in 'Hello':
print c
それはあなたが本当に(Pythonの2.xの)場合がありますどのように聞こえることは次のとおりです。
from binascii import unhexlify
mystring = "a1234f"
print map(ord,unhexlify(mystring))
[161、35、79]
これはそれぞれのペアに変換します16進文字を整数表現に変換します。 Pythonの3.xでは
、あなたが行うことができます:
>>> list(unhexlify(mystring))
[161, 35, 79]
しかしunhexlify
の結果はバイト文字列であるから、あなたはまた、単に要素にアクセスすることができます。
>>> L = unhexlify(string) >>> L b'\xa1#O' >>> L[0] 161 >>> L[1] 35
ライン間の読書+1。 –