我一直在网站上寻找类似的答案,我找到的最接近的答案是 this one .答案给出了以下用于实现此目的的 C 程序:
//My code file
#include <stdio.h>
#include <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;
}
我想做一些类似的事情(使用 python 3,我不知道这是否有区别)并使用 matplotlib 生成输出。但是我不知道如何使它适应 C++ 程序,特别是考虑到函数所需的类型(例如 wchar_t** for argv)。有没有一种方法可以做到这一点而不必对 C 类型执行各种类型转换?
请您参考如下方法:
我不确定 Python.h 能给你做什么,但如果你只想运行 cmd 命令,你可以这样做:
char* filename = "mypy.py";
char* arg = "-m";
char* argVal = "/tmp/targets.list";
char temp[512];
sprintf(temp, "python3 %s %s %s", filename, arg, argVal);
int errCode = system((char *)temp);
if (errCode){
std::cout << "Error code returned: " << errCode << std::endl;
return 1;
}
