16進文字列では、2文字ごとがバイトを表し、ASCII文字にマップされることを除いて、通常の文字列です。
たとえば、文字列
abc
として表されます
979899
私はbinasciiモジュールを見ていますが、16進文字列を取得してASCII文字列に戻す方法がよくわかりません。どの方法を使用できますか?
注:私はから始めて979899
、それを元に戻したいと思っていますabc
ord()
各文字の整数値を取得するために使用できます。
>>> map(ord, 'abc')
[97, 98, 99]
>>> ''.join(map(lambda c: str(ord(c)), 'asd'))
'979899'
>>> ''.join((str(ord(c)) for c in 'abc'))
'979899'
文字列内の文字の整数表現を取得するためにbinasciiは必要ありません。必要なのは、組み込み関数だけord()
です。
s = 'abc'
print(''.join(map(lambda x:str(ord(x)),s))) # outputs "979899"
16進数から文字列を取得するには、次を使用できます。
s=str(616263)
print "".join([chr(int(s[x:x+2], 16)) for x in range(0,len(s),2)])
http://ideone.com/dupgsを参照してください