从Python运行C程序,然后捕获输出

时间:2012-10-13 05:07:48

标签: python c

  

可能重复:
  How do I connect a Python and a C program?

我有一个C程序,需要两个args并输出一个数字。

./ a.out 2 3(例如)。它做了一些计算成本昂贵的操作,所以我想知道我可以使用Python的多处理库来运行一堆C程序,然后将所有数字编译成列表或表或某些数据结构吗?

谢谢,

这不是重复,因为我的问题是如何在PARALLEL EX中完成。很多线程!

1 个答案:

答案 0 :(得分:1)

// Your C file to be called from python
// To compile :
// gcc -dynamiclib -I/usr/include/python2.7/ -lpython2.7 -o Module.dylib Module.c

#include < Python.h >

static PyObject* py_myFunction(PyObject* self, PyObject* args)
{
    char *s = "Hello from C!";
    return Py_BuildValue("s", s);
}

static PyMethodDef myModule_methods[] = {
    {"myFunction", py_myFunction, METH_VARAGS},
    {NULL, NULL}
};

void initmyModule()
{
    (void) Py_InitModule("myModule", myModule_methods);
}

从python调用:

from Module import *
print "Result from myFunction:", myFunction()