I have a list of hex strings representing bytes, of the form \"FF\". I want to convert the whole list to a byte stream so I can send it over a socket (Python 3). It looks
hexstrings = ["DE", "AD", "BE", "EF"] # big-endian 0xDEADBEEF
bytes = bytearray(int(x, 16) for x in hexstrings)
bytes = bytearray.fromhex("".join(hexstrings)) # Python 2.6 may need u""
If you've got a lot of 'em, it might be worthwhile to see which of those is fastest.
hexlist = ["a9", "00", "85", "c6"]
ba = bytearray(h.decode("hex") for h in hexlist)
See also bytearray.fromhex:
bytearray.fromhex(string) -> bytearray
Create a bytearray object from a string of hexadecimal numbers. Spaces between two numbers are accepted. Example: bytearray.fromhex('B9 01EF') -> bytearray(b'\xb9\x01\xef').
Refer to :
char* PyByteArray_AsString(PyObject *bytearray) Return the contents of bytearray as a char array after checking for a NULL pointer
from the python doc reference