현재 subprocess.check_output을 사용하여 많은 출력을 생성하는 외부 C++ 프로그램을 호출하고 로그 파일에 stdout을 저장합니다. 그러나 C++ 프로그램은 끝내기까지 오랜 시간이 걸릴 수 있지만, 마치 bash 명령 행을 통해 C++ 프로그램을 직접 실행하는 것처럼 마치기 전에 stdout을보고 싶습니다.파이썬에서 bash 명령을 호출 할 때 주기적으로 출력을 파일에 저장하십시오.
물론 출력을 저장하기 위해 fstream을 사용하여 내 C++ 프로그램을 직접 수정하여이 작업을 수행 할 수 있습니다. 하지만 파이썬에서 표준 출력을 가로 챌 수있는 솔루션이 있는지 궁금합니다.
미리 감사드립니다.
'tee' 명령을 알고 있습니까? – hivert
@hivert 물론 C++ 프로그램을 호출하는 명령에 'tee'를 추가 할 수 있습니다. 하지만 내 질문은 파이썬에서 그것을 달성하는 방법에 관한 것입니다. @ Frodon이 질문에 대답했다. 출력을 다룰 때'subprocess.check_output'을 사용하곤 했었지만'subprocess.call'에 대해서는'stdout = logfile'을 전혀 몰랐습니다. – Tevatron