我有一个表示字节的十六进制字符串列表,格式为“FF”。我想将整个列表转换为字节流,以便我可以通过套接字(Python 3)发送它。看起来像bytearray类型可以工作,但我找不到任何方法直接将列表转换为bytearray。
我可以在循环中手动完成,但是必须有一个更好的Python方法来执行此操作。
答案 0 :(得分:3)
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""
如果你有很多人,那么看看哪一个是最快的可能是值得的。
答案 1 :(得分:0)
hexlist = ["a9", "00", "85", "c6"]
ba = bytearray(h.decode("hex") for h in hexlist)
另见bytearray.fromhex:
bytearray.fromhex(string) -> bytearray
从十六进制数字字符串创建一个bytearray对象。两个数字之间的空格被接受。例: bytearray.fromhex('B9 01EF') - >字节组(B '\ xb9 \ X01 \ XEF')。
答案 2 :(得分:-1)
参考:
char * PyByteArray_AsString(PyObject * bytearray) 在检查空指针
之后,将bytearray的内容作为char数组返回 来自python doc reference 的