Я хотел бы знать, есть ли какой-нибудь способ обработки случая неблокирования, а также потоковой передачи 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`