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 ++之间的流中值的通信的主要内容,如果未能解决你的问题,请参考以下文章
avr和python之间串行通信时出现奇怪的b'\ x'数据