我已经使用Python ctypes模块分配了一个数组并进行了转换:
dataC = ctypes.cast(crt.malloc(size), ctypes.POINTER(ctypes.c_ubyte))
为了从C库中获取字节数据:
someClib.getData(handle, dataC)
现在这个数组实际上是一个C float类型的数组。如何将其转换为浮动类型数字的Python列表?
答案 0 :(得分:5)
您可以转换为指向float的指针:
floatPtr = ctypes.cast(dataC, ctypes.POINTER(ctypes.c_float))
然后使用列表推导,例如,拉出浮点数:
floatList = [floatPtr[i] for i in range(arrayLength)]
现在,只有你知道arrayLength
的价值,但我认为它等于size / ctypes.sizeof(ctypes.c_float)
似乎是合理的。