2014-10-04 2 views
0

파이썬에서 bash 명령을 실행할 것입니다 (어쩌면 subprocess.Popen()으로). 출력을 프린트하고 싶습니다. 변수 나 파일에 동시에 출력 할 수 있습니다. 이 명령은 많은 텍스트를 반환하며 실행하는 데 몇 시간이 걸립니다.파이썬 - bash 명령을 실행하여 출력을 동시에 출력하십시오.

출력을 파일로 리디렉션하면이 파일에 나타나는 모든 새로운 행을 즉시 인쇄 할 수 있습니까?

+1

'tee' 명령을 참조하십시오. – isedev

+0

관련 : [subprocess.call() 출력을 터미널 및 파일로 푸시하려면 어떻게합니까?] (http://stackoverflow.com/q/25963074/4279) – jfs

+0

관련 : [서브 프로세스 출력을 stdout으로 표시하고 리디렉션] (http://stackoverflow.com/q/25750468/4279) – jfs

답변

0

tee 명령없이 파이썬에서이 모든 작업을 수행하려는 경우 다음을 수행 할 수 있습니다. 기본적으로 stdout=PIPE (하위 프로세스 문서 참조)을 설정하고 select()을 사용하여 읽을 데이터가있을 때마다 알림을 받아야합니다. 사용 가능한 데이터가 있으면이를 읽고이를 파일에 쓰고 동시에 인쇄하십시오. 이 문제를 해결할 수있는 비슷한 문제에 대한 해결책은 다음과 같습니다 : https://stackoverflow.com/a/12272262/4323

관련 문제