python和c ++之间的流中值的通信

Posted

技术标签:

【中文标题】python和c ++之间的流中值的通信【英文标题】:communication of a value in streaming between python and c++ 【发布时间】:2016-07-21 22:09:18 【问题描述】:

我有一个由其他人编写的 C++ 脚本,该脚本正在对视频进行在线(实时)分析。在运行代码中有一个开关盒。每种情况取决于在线视频分析中检测到的内容,事件频率应接近 20Hz。

在每个“案例”中,我想向我正在构建的 python 脚本发送“一些东西”。 python 脚本将在线计算事件并在串行端口上写入阈值后。并永远这样做。

我的问题是两个脚本之间的“在线”通信... C++ 中的“已构建”软件已经发送了许多不同的 cout,所以我无法将我想要的信息与其他 cout 分开。我想找到其他“输出”或区分我的相关信息的方法... 所以我想从 C++ 发送到 python

我应该使用什么? 我可以创建从 c++ 脚本到 python 脚本的管道吗?我怎样才能让它“在线”工作?

非常感谢

【问题讨论】:

Calling python script from C++ and using its output的可能重复 如果c++使用cout,则通过匿名管道发送数据并在python中读取stdin。 我的问题是将相关的 cout 信息与其他信息分开 如果 C++ 程序将所有内容都发送到 cout,那么您唯一的解决方案是读取整个输出并尝试查找相关消息。 我会尝试这样做,但我找不到“在线”阅读它的方法,在我尝试过的所有内容中,我不得不等待 C++ 脚本结束才能获得输出(例如与 subprocess.check_output() 一样)... 【参考方案1】:

我找到了一种在 shell 脚本中使用“管道”的方法:

./scriptc++ | ./script2.py

我的 C++ a 的标准输出重定向到我的 puthon 脚本的标准输入 它工作!

【讨论】:

以上是关于python和c ++之间的流中值的通信的主要内容,如果未能解决你的问题,请参考以下文章

通过消息代理进行 Java/Python 通信

R和Python之间的双向通信

python和arduino之间的串行通信

avr和python之间串行通信时出现奇怪的b'\ x'数据

使用 Python 多处理进行通信的 OSX 和 Linux 之间的性能差异

Java 和 c/c++之间是利用什么工具进行通信的?