【发布时间】:2011-04-06 22:16:23
【问题描述】:
我使用 ctypes 在 python 中访问读取 C 函数的文件。由于读取的数据巨大且大小未知,我在 C 中使用 **float 。
int read_file(const char *file,int *n_,int *m_,float **data_) {...}
函数mallocs 一个二维数组,称为data,具有适当的大小,此处为n 和m,并将值复制到引用的数组。见以下sn-p:
*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 for ctypes,最好的python库
标签: python pointers multidimensional-array ctypes