将数据从python发送到c ++作为参数或文件?
Sending data from python to c++ as parameters or file?
>我有两个程序。我的主要程序是 python 的,我还有另一个 c++ 程序,因为我必须连接到一台机器,而我可以使用这台机器的唯一方法是用构造函数给我的 c++ 制作的 dll/lib。
在我的 python 中,我从数据库中获取数千个点,我正在对它们进行一些操作,这些点存放在一个类的不同数组中。
现在,我需要将这些点发送到c ++程序,我想知道如何。我可以将它们作为参数发送到 c++ 程序的主程序,但命令行太长了,我认为即使它不是太长,这也是一个非常糟糕的做法(如果有人可以解释一点原因,那就太酷了!
实际上,我认为在我的 python 程序中生成一个包含此文件中的所有坐标的文件,并将其也发送到 c++,但我必须在 c++ 中解析它。 这是一个好方法吗?或者也许其他解决方案会更好?
一些方法:
- 将
subprocess.Popen()
与stdin=subprocess.PIPE
一起使用,每行写入一个数据,在C++端解析 - 使用临时文件,文本文件或其他文件
- 使用
ctypes
并将C++部分加载为共享库,然后直接从 Python 调用C++函数
使用 Python 的 struct
模块将 Python 中的数据编码为 C 结构,从而避免字符串格式化和字符串解析 - 这可以与上述三种中的任何一种结合使用:subprocess.Popen
(在C++中从stdin
读取二进制数据)、临时文件(以二进制模式打开)或ctypes
(将指向结构的指针直接传递给库函数)
至于为什么在命令行上传递参数是有问题的,操作系统施加了一些限制,例如getconf ARG_MAX。
相关文章:
- 在 cpp 文件中隐藏采用模板参数引用的方法
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?
- 是否可以在命令行中将输入参数传递给可执行文件
- 如何使用输入参数作为文件的传递?
- 隐蔽的 gcc 参数到 CMake 文件
- 生成文件文件名参数
- 在实现文件中使用模板参数声明方法
- 提供变量作为 MATLAB 系统命令的输入参数,以便C++可执行文件
- 如何在 c++ 窗口中将参数和返回的退出值传递到批处理文件/从批处理文件获取返回的退出值
- 编写一个将 LLVM IR 文件作为命令行参数的程序
- 通过命令行参数获取llvm ir文件时面临问题
- 如何使输入文本文件成为构造函数参数?c++
- (C/C++)fscanf_s从txt文件以字符形式读取数组时缺少整数参数错误
- 如何在不使用文件扩展名的情况下使用命令行参数打开C++中的文本文件?
- 读取用户必须提供一些参数的文件
- 如何使用 QProcess 设置参数以运行类文件?
- 可变参数模板在目标文件中有重复的符号?
- c++ 文件的参数
- accept(..) 似乎正在修改我给它的文件描述符参数
- C++ 找不到命令行参数(文件)