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,因为这可能使进程死锁。我也不想使用另一个线程来阅读,因为我想保持代码简单。
感谢。