하위 프로세스의 stderr 및 stdout에서 읽는 방법에 대해 많은 질문이 있습니다. 현재 프로세스의 stderr로 그렇게 할 수 있습니까? 나는 그것을 검사하고 IO Error를 발생 시켰습니다 : 파일을 열어서 읽을 수 없습니다.Python의 sys.stderr에서 읽기
stderr을 읽고 추가 처리를 위해 데이터를 가져와야했습니다. 'r +'모드에서 파일을 여는 방법이 있습니까?
class CustomStdErr(object):
def write(self, data):
with open(fakestderr, 'r+') as f:
f.write(data)
sys.stderr = CustomStdErr()
더 직접 할 수있는 다른 방법이 있습니까 : 내가 생각
한 가지 방법은 같은 클래스와 기본 sys.stderr를을 무시했다?
편집 : 나는 열려진 필요한 이유:
스레드가있다을 (를 호출 X) 메인 쓰레드와 상호 작용하는 코드 (M 호출). 주 스레드에서 로깅을 사용할 수 있습니다. 이것은 stderr로 재 지정됩니다. 이제 스레드 X의 의무는 stderr를 모니터링하고 을 읽고을 읽고 주 스레드에 대해 처리합니다. 요약하면, 이것은 무엇이 일어나고 있는지입니다.
이것은 실제로 XY 문제. 자신의 프로세스가 쓰고있는 stderr을 왜 읽고 싶은지 명확히 할 수 있습니까? – Korem
@Korem 편집을했습니다 –
당신이 제안한 방법을 가정하면, CustomStdErr'을'cStringIO'와 함께 사용합니다. –