如何保存包含指针的ctypes对象
问题内容:
我使用第3方库,该库经过大量计算后会返回包含指针的ctypes对象。
如何保存ctypes对象以及指针指向的对象以供以后使用?我试过了
scipy.io.savemat
=> TypeError:无法将对象转换为数组cPickle
=>不能腌制包含指针的ctypes对象
问题答案:
Python无法自动为您做到这一点:
您将必须构建代码以自行选择所有所需数据,然后将它们放入合适的Python数据结构中(或仅将数据添加到唯一的字节串中,在此您将知道每个元素的偏移量在哪里)-然后保存该对象到磁盘。
这不是一个“
Python”问题,而是一个在您使用Python对象和数据时Python为您解决的问题。当使用C或更低级别的代码进行编码时,您不仅要知道数据在哪里,还要知道每个数据块的长度(并为每个块分配内存,并在完成时释放它,等等)。在这种情况下,这就是您要做的。
您的数据结构不仅应为您提供指针,还应为每个指向的位置提供数据长度(以某种方式或其他方式-如果指针指向另一个结构,则“ size_of”将为您工作)