我的代码尝试使用Structure类读取二进制文件:
import os
import mmap
from ctypes import Structure, c_uint
class StructFile(Structure):
_pack_ = 1
_fields_ = [('Xmin', c_uint),('Ymax', c_uint)]
fd = os.open(filePath, os.O_RDWR | os.O_BINARY)
mmap_file = mmap.mmap(fd, length=ln, access=mmap.ACCESS_WRITE, offset=0)
d_arrayFile = StructFile * numItems
data = d_arrayFile.from_buffer(mmap_file)
for i in data:
print i.Xmin, i.Ymax
它工作正常,但我想使用cython类加速它。问题是当我使用cdef class StructFile(Structure):
汇编时说:“'结构'不是类型名称”。
我怎样才能让cython将'Structure'识别为'int','object'等类型名称?或者任何其他优化代码的解决方案(不使用struct.unpack)。
谢谢!