перенаправление подпроцесса stdout / stderr вместо использования каналов - PullRequest
0 голосов
/ 31 марта 2020

Считать из подпроцесса stdout / stderr и распечатать его на экране по мере его создания сложно, потому что легко зайти в тупик. Есть ли недостаток в перенаправлении подпроцесса stdout / stderr вместо sys.stdout / sys.stderr, что кажется намного проще? Пример кода:

import shlex
import subprocess
import time

def run(command):

    p = subprocess.Popen(shlex.split(command), stdout=sys.stdout, stderr=sys.stderr)
    while True:
        return_code = p.poll()
        if return_code is not None:
            if return_code > 0:
                raise Exception("Command %s failed" % command)
            break
        else:
            time.sleep(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...