stdout 및 stderr에 쓸 프로그램이 있습니다. python에서 stdout 및 stderr를 캡처하여 실행하고 싶습니다. 프로그램의 몇 가지를 들어stdout = PIPE 인 경우 subprocess.Popen wait()가 영원히 기다리는 이유를 어떻게 알 수 있습니까?
from subprocess import *
p = Popen(exe, shell=TRUE, stdout=PIPE, stderr=PIPE)
rtrncode = p.wait()
이 잘 작동하지만, 나는 새로운 하나를 추가 할 때, 새 영원히 중단 : 내 코드는 것 같습니다. stdout=PIPE
을 제거하면 프로그램이 출력을 콘솔에 쓰고 완료되며 모든 것이 정상입니다. 중단의 원인을 어떻게 판별 할 수 있습니까?
Windows XP에서 python 2.5를 사용합니다. 이 프로그램은 stdin을 읽지 않으며 어떠한 종류의 사용자 입력 (예 : "hit a key")을 가지고 있지 않습니다.
당신은 나를 조금이라도 이길 수 있습니다. +1 – MitMaro
파이썬 2.5와 함께 설치된 도움말 파일에는 작은 정보가 없습니다. 감사합니다. –
@Graeme, 예, 2.6의 문서는 2.5 점으로 크게 개선되었습니다. –