Я хочу, чтобы иметь возможность использовать Popen.communicate
и имеют стандартный вывод записывается в файл (в дополнение к тому, что вернулся из communicate()
Python subprocess.Popen общаться через трубопровод
Это делает то, что я хочу. - но это на самом деле хорошая идея?
cat_task = subprocess.Popen(["cat"], stdout=subprocess.PIPE, stdin=subprocess.PIPE)
tee_task = subprocess.Popen(["tee", "-a", "/tmp/logcmd"], stdin=cat_task.stdout,
stdout = subprocess.PIPE, close_fds=True)
cat_task.stdout = tee_task.stdout #since cat's stdout is consumed by tee, read from tee.
cat_task.communicate("hello there")
('hello there', None)
Любые проблемы, связанные с этим, глядя на сообщаться-х осущ выглядит хорошо. Но есть более хороший способ?