用Python包装一个C程序,将自定义文件读入二维数组

时间:2012-10-08 16:40:43

标签: python c numpy swig cython

我有一个独立的c程序,它接受一个char *文件名,打开文件,读取并解码为二维数组。在读取文件之前,我们不知道数组的长度。程序mallocs内存。

我想有一个python扩展,返回一个2d numpy整数数组,给定文件名:

  
    
      

a = readFile(" theFileName.dat")

    
  

我希望python在返回数组后管理内存。

  1. 在numpy.i中,是否有定义的指令我可以使用%apply
  2. cython是否更适合这个?
  3. 其他建议?
  4. 复制数据没问题,因为文件不是很大。

1 个答案:

答案 0 :(得分:1)

SIPhere也可以)用于为C库创建Python绑定。

但这可能是一种过度杀伤力;在Python本身中读取/解码.dat文件可能更容易。