如何从C+发送和接收数据(和/或数据结构)+;将脚本转换为Python脚本?

如何从C+发送和接收数据(和/或数据结构)+;将脚本转换为Python脚本?,python,c++,Python,C++,我正在从事一个项目,需要做以下工作: [C++程序]检查给定目录,提取找到的文件的所有名称(完整路径),并将其记录在向量中 [C++程序]“发送”向量到Python脚本 [Python脚本]“接收”向量并将其转换为列表 [Python脚本]将列表元素(路径)与数据库记录进行比较,并从列表中删除匹配项(删除已注册的路径) < Ly> [ Python脚本]将处理过的列表发送回C++程序。 [C++程序]“接收”列表,将其转换为向量,并使用处理后的数据继续其操作 我想知道如何在C++脚本和Pytho

我正在从事一个项目,需要做以下工作:

  • [C++程序]检查给定目录,提取找到的文件的所有名称(完整路径),并将其记录在
    向量中
  • [C++程序]“发送”向量到Python脚本
  • [Python脚本]“接收”向量并将其转换为
    列表
  • [Python脚本]将列表元素(路径)与数据库记录进行比较,并从列表中删除匹配项(删除已注册的路径)
  • < Ly> [ Python脚本]将处理过的列表发送回C++程序。
  • [C++程序]“接收”列表,将其转换为向量,并使用处理后的数据继续其操作
  • 我想知道如何在C++脚本和Python脚本之间发送和接收数据结构(或数据)。

    在本例中,我将向量转换为一个列表,但是我想知道如何对任何结构或数据进行转换

    显然,我是一个初学者,这就是为什么我希望您帮助我阅读什么文档,我应该从什么概念开始,我应该使用什么技术(可能有一些隐含的标准),我可以回顾哪些链接来学习如何在语言脚本之间交流数据​​我刚才提到


    任何帮助对我都很有用。

    您可以将参数传递给任何进程/脚本,无论它们是用什么语言编写的

    <>在C++中,它们被表示为<代码> ARC<<代码>(参数的数量)和<代码> ARGV (实际参数)。 应输出:

    Have 3 arguments:
    hello
    world
    
    请注意,参数的大小是3,尽管您只传递
    hello
    world
    ,但这是因为
    argv
    中的第一个元素始终是您的程序名

    它在Python中的等价物是:

    import sys 
    print('Have ' + len(sys.argv) + 'arguments:') 
    print("Argument List:", str(sys.argv)) 
    

    如果我是你,我会先将向量/列表序列化,然后将其作为一个参数在Python和C++进程之间来回传递。

    < P>不管你用什么语言编写,都可以将参数传递给任何进程/脚本。 <>在C++中,它们被表示为<代码> ARC<<代码>(参数的数量)和<代码> ARGV (实际参数)。 应输出:

    Have 3 arguments:
    hello
    world
    
    请注意,参数的大小是3,尽管您只传递
    hello
    world
    ,但这是因为
    argv
    中的第一个元素始终是您的程序名

    它在Python中的等价物是:

    import sys 
    print('Have ' + len(sys.argv) + 'arguments:') 
    print("Argument List:", str(sys.argv)) 
    

    <如果我是你,我会先将向量/列表序列化,然后将它作为Python和C++进程之间来回的参数传递。

    < P>你可以检查ReIIS。它可以用作程序之间的消息代理

    他们有很多语言的客户端,包括C++和Python。

    您可以为每个程序设置通道以通过发布消息,并让另一个程序订阅该通道以接收这些消息。
    查看文档的pubsub部分:

    您可以查看redis。它可以用作程序之间的消息代理

    他们有很多语言的客户端,包括C++和Python。

    您可以为每个程序设置通道以通过发布消息,并让另一个程序订阅该通道以接收这些消息。
    检查文档的PUBSUBER部分:

    < P>如果从C++进程中执行Python脚本,那么最简单的设计就是接受Python脚本,接受“代码>输入文件> /COD>和<代码> OutPuxFix< /Cuff>作为参数,C++程序应该编写<代码>输入文件< /代码>,启动脚本并读取
    输出文件

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


    如果想法是在两个已经启动的进程之间发送/接收数据,那么您可以使用相同的协议缓冲区对数据进行编码,并通过彼此之间的套接字发送/接收数据。检查代码< GRPC < /Calp> < /P> > P>如果C++程序中执行Python脚本,那么最简单的设计就是接受Python脚本,接受“代码>输入文件> /COD>和<代码> OutPuxFix< /Cuff>作为参数,C++程序应该编写<代码>输入文件>代码>,启动脚本并读取<代码> OutPuthFix< <代码> > < /P> 对于字符串列表这样的简单结构,您可以简单地将它们作为文本文件写入并共享,但对于更复杂的类型,您可以使用google protocolbuffers进行编组/解编组


    如果想法是在两个已经启动的进程之间发送/接收数据,那么您可以使用相同的协议缓冲区对数据进行编码,并通过彼此之间的套接字发送/接收数据。检查<代码> GRPC < /Calp> < /P>你会从C++程序启动Python脚本吗?还是Python脚本上行并等待输入?你在做一些接口吗?@ SAMDANIL Python脚本代码将导入“sys”库,处理将用C++接收的参数完成。因此,它将等待C++执行并发送数据来处理它。@ PyMu妞我是这个主题的新手,我知道发送的数据可以是一个带有JSON格式的简单字符串,这样它就可以处理接口,但是,我不知道如何把这个数据从一个脚本发送到另一个C++。最简单的方法是使用文件作为通信媒介。你会从C++程序启动Python脚本吗?还是Python脚本运行并等待输入?你在做一些接口的事情吗?@ SAMDANIL Python脚本代码将导入“sys”库,处理将用参数接收。