我使用ctypes来访问一个读取python中的C函数的文件。由于读取的数据非常庞大,尺寸未知,我在C中使用了**float
。使用ctypes访问一个变量数组的内容
int read_file(const char *file,int *n_,int *m_,float **data_) {...}
功能mallocs
一个二维数组,称为data
,适当大小的,这里n
和m
,并复制的值,以引用的那些。请参见下面的代码片段:
*data_ = data;
*n_ = n;
*m_ = m;
我访问此功能与下面的Python代码:
p_data=POINTER(c_float)
n=c_int(0)
m=c_int(0)
filename='datasets/usps'
read_file(filename,byref(n),byref(m),byref(p_data))
后来,我尝试使用contents
p_data
进入电影,但我只得到一个浮点值。
p_data.contents
c_float(-1.0)
我的问题是:如何在python访问data
?
你推荐什么?请不要犹豫,指出我是否留下了不清楚的东西!
+1对于ctypes,最好的python库 – amwinter 2010-09-01 18:36:55