TL; DR: как получить два НЕЗАВИСИМЫХ файловых объекта / дескриптора временного файла (без видимого имени)?
У меня много данных, и мне нужно передать команду для обработки, т.е.
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
для вывода, потому что это может заблокировать процесс. Я также не хочу использовать другой поток для чтения, так как хочу, чтобы код был простым.
Спасибо.