Чтение живого вывода из `subprocess`, при этом зная только его` pid` - PullRequest
0 голосов
/ 21 мая 2019

В приложении, которое я создаю, я запускаю некоторый код через его собственный subprocess, но код subprocess 'также имеет свою собственную проверку ошибок, к которой я бы хотел регулярно получать доступ из глобальной сессии Python, чтобы "увидеть", если что-то возникло (то есть ошибка).

Я перебрал ответы на другие вопросы SE, такие как здесь и здесь , но все ониПредположим, что у вас есть доступ к subprocess.Popen объекту.Однако из-за сегментированной природы моего приложения у меня нет доступа к нему, только его pid из subprocess_object.pid.

Если был способиспользовать pid для доступа к своему подпроцессу 'stdout или stderr, можно ли будет печатать эти выходные данные с дискретными интервалами, записывая все, что является сообщением об ошибке последний ?

Psuedocode:

import time

subprocess_object = subprocess.Popen(['python3', 'my_code.py'])
pid = subprocess_object.pid
...
for i in range(100):
   time.sleep(5)
   print(subprocess.stdout(pid=pid))

Заранее большое спасибо за любую помощь.

...