gpt4 book ai didi

python - 将数据作为参数或文件从 python 发送到 c++?

转载 作者:行者123 更新时间:2023-11-28 01:39:44 25 4
gpt4 key购买 nike

我有两个程序。我的主程序是用 python 编写的,我有另一个用 c++ 编写的程序,因为我必须连接到一台机器,而我可以使用这台机器的唯一方法是构造函数给我的用 c++ 制作的 dll/lib。

在我的 python 中,我从数据库中获取了数千个点,我正在对它们进行一些操作,这些点存储在一个类的 differents 数组中。

现在,我需要将这些点发送到 C++ 程序,我想知道如何发送。我可以将它们作为参数发送到 c++ 程序的主体,但是命令行太长了,我认为即使不是太长,这也是一个非常糟糕的做法(如果有人能解释一下为什么,那会很酷!)。

实际上,我想在我的 python 程序中生成一个包含此文件中所有坐标的文件,并将其发送到 C++,但我必须在 C++ 中解析它。这是一个好方法吗?或者其他解决方案可能会更好?

最佳答案

一些方法:

  1. 使用subprocess.Popen()使用 stdin=subprocess.PIPE 并每行写入一个数据,在 C++ 端解析它
  2. 使用临时文件,文本文件或其他文件
  3. 使用ctypes并将 C++ 部分作为共享库加载,然后直接从 Python 调用 C++ 函数
  4. 使用 Python 的 struct模块将您的数据从 Python 编码为 C 结构,这避免了字符串格式化和字符串解析——这可以与以上三个中的任何一个结合:subprocess.Popen(从 读取二进制数据C++ 中的 stdin)、临时文件(以二进制模式打开)或 ctypes(将指向结构的指针直接传递给库函数)

至于为什么在命令行上传递参数有问题,操作系统施加了限制,例如getconf ARG_MAX .

关于python - 将数据作为参数或文件从 python 发送到 c++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47754260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com