【发布时间】:2010-11-06 20:39:06
【问题描述】:
我发现了很多与该主题或多或少相关的主题,但仍然几乎没有完整的答案......我正在寻找你的建议。
所以,这是我的问题:我确实需要以两种方式与子进程进行通信:我必须将大量数据写入其输入并即时获取其输出。没有其他办法了。我的子进程是著名的“lame”mp3 编码器,输入是我的函数生成的一个小时或更长时间的 PCM 声音,输出是 mp3 文件,该文件也必须逐块发送给用户,而无需等待编码器完成。
根据文档,Popen.communicate() 无法帮助我处理以数十或数百兆字节为单位的 IPC。同时,正如我从这里了解到的,尝试从头开始创建这种方法是非常危险的,因为有很多陷阱在等待:死锁、缓冲、进程管理等。
所以,我的问题是:对于这类问题是否有一些众所周知的解决方案:真正解决问题的 python 库或代码示例?可能至少有一篇文章或其他内容清楚地描述了一个人尝试自己解决这个问题时可能遇到的大多数问题?
提前谢谢你, 伊利亚。
【问题讨论】:
标签: python ipc subprocess popen