【问题标题】:Running and obtaining results of a python program in C在 C 中运行并获取 python 程序的结果
【发布时间】:2017-08-17 06:38:28
【问题描述】:

python 脚本包含大量导入的库

到目前为止我的 C 代码:

#include <stdio.h>
#include <python2.7/Python.h>

void main(int argc, char *argv[])
{    
    FILE* file;

    Py_SetProgramName(argv[0]);
    Py_Initialize();    
    PySys_SetArgv(argc, argv);

    file = fopen("analyze.py","r");

    PyRun_SimpleFile(file, "analyze.py");
    Py_Finalize();                      

    return;
}

我是否可以使用任何其他方式,以便即使我在 c 程序中调用的参数或 python 脚本数量的任何修改增加了相同的代码,只需稍加改动即可使用?

我可以使用系统调用并使用从中获得的结果吗?

【问题讨论】:

  • 请编辑您的问题并修正代码格式。
  • 试着看你自己的帖子几秒钟,你应该能说出来......哦,我会为你解决的。
  • 1) 将您的代码粘贴到帖子中 2) 标记后,单击代码格式化图标{}。这将为代码提供正确的语法着色并将字体更改为 Courier。

标签: python c python-2.7 system-calls


【解决方案1】:

一种有用的方法是在 c 中调用 python 函数,这是您需要而不是执行整个脚本。

如中所述 >> here

【讨论】:

    【解决方案2】:

    你可以这样从 C 程序中调用 python 文件:

    char command[50] = "python full_path_name\\file_name.py";

    system(command);

    这段代码对我有用...

    我没有使用# include &lt; python2.7/Python.h&gt;

    您可以将 python 文件中的结果写入任何文本文件,然后使用存储在文本文件中的结果来做任何您想做的事情...

    您还可以查看此帖子以获得更多帮助:

    Calling python script from C++ and using its output

    【讨论】:

    • 尝试在python脚本开头使用#!usr/bin/python
    • 我没有使用版本...我使用的是 python 2.7...这对我有用
    • 我猜你可以在你的python脚本中使用argparse...在C代码中你可以像这样编辑command字符串:char command[100] = 'python full_path_name\\file_name.py arg1 arg2 ..argn'
    • 你也可以在你的python脚本中使用import sys并使用sys.argv[i]来访问相应的参数,其中i是参数在命令行中的位置
    • 你可以看看这个帖子stackoverflow.com/questions/125828/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 2015-03-30
    • 2017-06-06
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多