似乎您正在使用Python.h中的python开发API寻找答案。这是一个适合您的示例:
#My python script called mypy.pyimport sysif len(sys.argv) != 2: sys.exit("Not enough args")ca_one = str(sys.argv[1])ca_two = str(sys.argv[2])print "My command line args are " + ca_one + " and " + ca_two
然后通过C代码传递这些args:
//My pre file#include <stdio.h>#include <python2.7/Python.h>void main(){ FILE* file; int argc; char * argv[3]; argc = 3; argv[0] = "mypy.py"; argv[1] = "-m"; argv[2] = "/tmp/targets.list"; Py_SetProgramName(argv[0]); Py_Initialize(); PySys_SetArgv(argc, argv); file = fopen("mypy.py","r"); PyRun_SimpleFile(file, "mypy.py"); Py_Finalize(); return;}
如果可以将参数传递给C函数,则此任务将变得更加容易:
void main(int argc, char *argv[]){ FILE* file; Py_SetProgramName(argv[0]); Py_Initialize(); PySys_SetArgv(argc, argv); file = fopen("mypy.py","r"); PyRun_SimpleFile(file, "mypy.py"); Py_Finalize(); return;}
您可以直截了当。现在,为了节省时间,我的解决方案只使用了2个命令行参数,但是您可以对所有6个参数使用相同的概念…当然,还有更简洁的方法可以在python端捕获args,但是那只是基本的想法。
希望能帮助到你!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)