Неблокирующая потоковая передача с помощью подпроцесса Python Popen - PullRequest
0 голосов
/ 27 февраля 2019

Я хотел бы знать, есть ли какой-нибудь способ обработки случая неблокирования, а также потоковой передачи stdout и stderr из подпроцесса python.Я просмотрел несколько статей на этом сайте, но ни одна из них не имеет ответа на этот сценарий.Это либо показывает, запустив чтение в другом потоке, так что основной поток остается незатронутым (или) только как поток данных из процесса.Моя проблема - это сочетание обоих.Я предполагаю, что проблема в read() или readline(), так как они блокируются тем или иным способом во время потоковой передачи.

Я хочу, чтобы у меня был потрепанный объект, это моя главная задача.Я прилагаю ссылки, через которые я прошел для дальнейшего использования.

script_process = subprocess.Popen(command_sequence[i],preexec_fn=os.setsid, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    while script_process.poll() is None:
       for output in iter(lambda: script_process.stdout.readline(), b''):
           sys.stdout.writelines(output)

Неблокирующее чтение для подпроцесса. ТРУБКА в python

Надежный неблокировка чтения из подпроцесса стандартный вывод

печать стандартного вывода в реальном времени из подпроцесса, для которого требуется стандартный ввод

Постоянная печать вывода подпроцесса во время выполнения процесса

Можно ли в реальном времени транслировать вывод из подпроцесса python на веб-страницу?

Как создать неблокирующее непрерывное чтение из `stdin`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...