В Popen.stdout:
ПредупреждениеИспользуйте communication() вместо .stdin.write, .stdout.read или .stderr.read, чтобы избежать взаимоблокировок из-за любого из другие буферы каналов ОС заполняют и блокируют дочерний процесс.
И на Popen.communicate:
Примечание
Считываемые данные буферизуются в памяти, поэтому не используйте этот метод, если размер данных большой или неограниченный.
Отлично! Что теперь?
Мне нужно что-то вроде:
Код: Выделить всё
with popen(["command", "--arg=foo"]) as file:
while True:
(out, err) = file.communicate_one_line()
if out is None and err is None: break
[...]
Подробнее здесь: https://stackoverflow.com/questions/791 ... -in-python