首页 > 解决方案 > 如何从 C++ 脚本向 Python 脚本发送和接收数据(和/或数据结构)?

问题描述

我正在做一个需要执行以下操作的项目:

  1. [C++ 程序] 检查给定目录,提取找到的文件的所有名称(完整路径)并将它们记录在vector<string>.
  2. [C++ 程序] 将向量“发送”到 Python 脚本。
  3. [Python 脚本]“接收”向量并将其转换为List.
  4. [Python 脚本] 将列表的元素(路径)与数据库的记录进行比较,并从列表中删除匹配项(删除已注册的路径)。
  5. [Python 脚本] 将处理后的列表“发送”回 C++ 程序。
  6. [C++ 程序]“接收”列表,将其转换为向量并继续对处理后的数据进行操作。

我想知道如何在 C++ 脚本和 Python 脚本之间发送和接收数据结构(或数据)。

对于这种情况,我将向量转换为列表的示例,但是我想知道如何对任何结构或数据执行此操作。

显然我是一个初学者,这就是为什么我希望你帮助我阅读哪些文档,我应该从什么概念开始,我应该使用什么技术(也许有一些隐含的标准),我可以查看哪些链接来学习如何我刚才提到的语言的脚本之间进行数据通信

任何帮助对我有用。

标签: pythonc++

解决方案


如果想法是从 c++ 进程执行 python 脚本,那么最简单的方法是将 python 脚本设计为接受input_fileoutput_file作为参数,并且 c++ 程序应该编写input_file、启动脚本并读取output_file.

对于像字符串列表这样的简单结构,您可以简单地将它们写为文本文件并共享,但对于更复杂的类型,您可以使用 google-protocolbuffers 进行编组/解组。

如果想法是在两个已经启动的进程之间发送/接收数据,那么您可以使用相同的协议缓冲区来编码数据并通过彼此之间的套接字发送/接收。查看gRPC


推荐阅读