python:使用tempfile作为管道

时间:2018-05-09 17:34:11

标签: python subprocess temporary-files

TL; DR:如何获取临时文件的两个INDEPENDENT文件对象/描述符(没有可见名称)?

我有很多数据,需要传递给要处理的命令,即

tmp = tempfile.SpooledTemporaryFile()
p = subprocess.Popen(['command'], stdin=subprocess.PIPE, stdout=tmp)
for d in get_data():
    p.stdin.write(d)

通过这种方式,我无法在tmp完成之前阅读p。我试图获得tmp的另一个描述符,但似乎不可能。 os.dup没有帮助,因为返回的描述符只是一个引用。

注意:我不能将subprcess.PIPE用于stdout,因为这可能使进程死锁。我也不想使用另一个线程来阅读,因为我想保持代码简单。

感谢。

0 个答案:

没有答案