似乎您正在使用 Python.h 中的 python 开发 API 寻找答案。这是一个应该工作的例子:
#My python script called mypy.py
import sys
if 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 代码:
//My code 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 端的参数,但是这只是基本的想法。
希望能帮助到你!