用c++调用python程序

Posted

技术标签:

【中文标题】用c++调用python程序【英文标题】:Calling a python program with c++ 【发布时间】:2019-11-10 17:56:55 【问题描述】:

我想制作一个 c++ 程序,它可以从文件中搜索 href,并且该 href 需要被抓取。为此,我使用 python 从 href 中抓取数据并将其保存在文件中。现在我的问题是如何将 href 发送到 python 程序?

【问题讨论】:

也许是***.com/questions/57164776/… 【参考方案1】:

您可以执行命令并让python解释器来完成这项工作。

int result = system("python_path python_file_path.py");

或者 Boost 有一个库用于 Boost.Python

【讨论】:

std::system 语句正在调用主机命令处理器,它允许执行诸如“ls -l”之类的终端程序以及诸如“python3 hello.py”之类的python脚本。它可以完成这项工作,但这是一种糟糕的编程风格。将 C++ 与 Python 程序连接起来的更详细的形式是使用可以通过 REST 框架实现的形式化 API。 是的,我同意你的观点,这就是为什么我也添加了 Boost api 解决方案。我只是想让他知道system funcion 以及非 api 解决方案。因为如果他在c++程序中执行一点python脚本,system就不会受到伤害。【参考方案2】:

我想做一个从文件中搜索href的c++程序

(请注意,您不需要 python;您需要 parse html;您会找到 C++ 库,例如 myhtml)。

现在我的问题是如何将 href 发送到 python 程序?

这是operating system 特定的,也特定于您的 Python 程序。阅读more 了解 C++。注意std::system

阅读关于embedding and extending python的章节。

考虑同时启动一个新的process 并使用inter-process communication 设施。在 Linux 上,请参阅 pipe(7)、popen(3)。

【讨论】:

以上是关于用c++调用python程序的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 程序中调用 Python 函数

Python调用C++

Python调用C++

Python调用C++

C++调用Python浅析

C++程序调用python3