用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程序的主要内容,如果未能解决你的问题,请参考以下文章