Convert list of byte strings to bytearray (byte stream)

后端 未结 3 1708
Happy的楠姐
Happy的楠姐 2021-01-07 04:58

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

相关标签:
3条回答
  • 2021-01-07 05:43
    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.

    0 讨论(0)
  • 2021-01-07 06:02
    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').

    0 讨论(0)
  • 2021-01-07 06:03

    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

    0 讨论(0)
提交回复
热议问题