Skip to main content
 首页 » 编程设计

python之使用命令行参数在 C++ 中运行 python .py 文件

2025年05月04日8xxx_UU

我一直在网站上寻找类似的答案,我找到的最接近的答案是 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; 
}