나는 PolarSSL 라이브러리에서 작업 중이며 일부 테스트를 자동화하려고합니다. PolarSSL은 많은 테스트를 자동화하는 명령 행 실행 파일 (selftest.exe
)을 제공하지만 아직 Python 프로그램과 인터페이스하고 싶습니다. 기본적으로, 나는 그 결과를 읽고 추가 조사를 위해 문자열로 저장하고 싶습니다.서브 프로세스와의 상호 작용
는 selftest.exe
이 완료되면 그러나, 그것은 프로그램을 종료 [ENTER]
을 눌러 사용자에게 요청하고 사용자가 어떤 그는 결코, [ENTER]
를 누를 때까지 영원히 중단 이후 따라서, subprocess.Popen
을 통해이 과정을 호출하면, 작동하지 않습니다.
정확히 정확한 시간에 키 스트로크를 보내는 것이 합리적으로 불가능하다고 생각되지만 "XXX 초 후"와 같은 시간 초과에 대해 생각하고 프로세스의 표준 출력을 저장합니다 문자열로 ", XXX는 모든 결과를 갖기에 충분합니다.
그게 가능한 아이디어입니까, 아니면 일반적으로 대화 형 프로그램을 사용하는 "깨끗한"아이디어입니까?
EDIT (평판이 낮아 언급 할 수 없기 때문에) : 첫 번째 대답은 옳았습니다. Enter를 누를 때마다 프로그램이 종료되었습니다. 그러나 p.communicate(input='\n')
을 호출하면 다음 오류가 발생합니다. 'str'이 버퍼 인터페이스을 지원하지 않습니다. 대신 에 전화해야합니다.
[process.communicate ('\ n')] (https://docs.python.org/2.6/library/subprocess.html#subprocess.Popen.communicate)를 사용해 보셨습니까? –
@Rawing : 내 편집 참조 :) – EddaSnorra