0

我有一个可执行的 python 脚本,process-data.py它通过标准输入读取实时输入并实时处理它。我想向它提供两种类型的数据:图像和原始文本。两者都是从其他 python 脚本生成的。

使用unbuffer和管道时处理文本有效,如下所示:

unbuffer ./text-output.py | ./process-data.py

对图像数据做同样的事情也有效

unbuffer ./image-output.py | ./process-data.py

我将如何同时运行image-output.pytext-output.py处理数据而不会从缓冲区延迟?我尝试过使用 cat,但它不能实时工作(两个“输出”脚本都会随着时间的推移生成它们的数据并且无限期地这样做)

4

1 回答 1

0

您可以尝试使用命名管道:

mkfifo /tmp/pipe
./text-output.py > /tmp/pipe &
./image-output.py > /tmp/pipe &
./process-data.py < /tmp/pipe
rm /tmp/pipe

但请记住,管道(命名和未命名)仍然在内部使用缓冲区。

于 2018-03-23T21:52:22.927 回答