Python читает из подпроцесса stdout и stderr отдельно, сохраняя порядок

У меня есть подпроцесс python, из которого я пытаюсь прочитать выходные данные и потоки ошибок. В настоящее время у меня это работает, но я могу только читать сstderr после того, как я закончил читать изstdout, Вот как это выглядит:

process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout_iterator = iter(process.stdout.readline, b"")
stderr_iterator = iter(process.stderr.readline, b"")

for line in stdout_iterator:
    # Do stuff with line
    print line

for line in stderr_iterator:
    # Do stuff with line
    print line

Как видите,stderr цикл не может начаться, покаstdout цикл завершается. Как я могу изменить это, чтобы иметь возможность читать из обоих в правильном порядке строки?

Чтобы уточнить: Мне все еще нужно знать, пришла ли строкаstdout или жеstderr потому что они будут рассматриваться по-разному в моем коде.

Ответы на вопрос(0)

Ваш ответ на вопрос