Long Hex String에서 Python Bytes 객체를 만드는 방법은 무엇입니까?
문제
나는 다음과 같은 문자열에 16 진수 숫자의 긴 시퀀스를 가지고 있습니다.
00000000000000484240FA063DE5D0B744ADBED63A81FAEA3900C8428640A43D5005BD44
훨씬 더 길고, 몇 킬로바이트. 파이썬 2.6/3의 바이트 객체로이를 변환하는 내장 방법이 있습니까?
해결책
Python3을 포함하여 Python 2.7 이상에서 작동합니다.
result = bytearray.fromhex('deadbeef')
메모: 버그가있는 것 같습니다 bytearray.fromhex()
파이썬에서 기능 2.6. python.org 문서는이 함수가 문자열을 인수로 받아들이지만 적용하면 다음 오류가 발생한다고 명시합니다.
>>> bytearray.fromhex('B9 01EF')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: fromhex() argument 1 must be unicode, not str`
다른 팁
result = bytes.fromhex(some_hex_string)
HEX 코덱으로이를 수행 할 수 있습니다. 즉:
>>> s='000000000000484240FA063DE5D0B744ADBED63A81FAEA390000C8428640A43D5005BD44'
>>> s.decode('hex')
'\x00\x00\x00\x00\x00\x00HB@\xfa\x06=\xe5\xd0\xb7D\xad\xbe\xd6:\x81\xfa\xea9\x00\x00\xc8B\x86@\xa4=P\x05\xbdD'
시도해보십시오 binascii 모듈
from binascii import unhexlify
b = unhexlify(myhexstr)
import binascii
binascii.b2a_hex(obj)
제휴하지 않습니다 StackOverflow