2015-01-19 8 views
2

나는 이것이 매우 간단한 질문이라고 생각하지만 간단한 답을 찾지 못하고있다.Python 프로그램의 명령 행 프롬프트에 입력 보내기

(starcluster를 사용하여) AWS 클러스터를 종료하는 Python 프로그램을 실행 중입니다. 하위 프로세스를 사용하여 파이썬 프로그램에서 다음과 같은 명령을 호출하고 있습니다.

subprocess.call('starcluster terminate cluster', shell=True) 

실제 명령은 내 질문과 관련이 없지만 일부 내용을 제공합니다. 이 명령은 클러스터를 종료 시작하지만과 같이 계속하기 전에/A 예에 대한 아무런 입력하라는 메시지를 표시하지 않습니다 :

Terminate EBS cluster (y/n)? 

어떻게이 프롬프트에 대한 입력으로 내 파이썬 프로그램 내에서 예를 입력 자동화합니까?

+2

http://stackoverflow.com/a/12982539 – Amit

답변

2

당신은는 popen 사용하여 표준 입력 쓸 수 있습니다 :

from subprocess import Popen, PIPE 
proc = Popen(['starcluster', 'terminate', 'cluster'], stdin=PIPE) 
proc.stdin.write("y\r") 
0

그것은 대상 프로그램에 대한 문서를 확인하는 간단한 수 있습니다 : 이러한 상호 작용을 pexpect와 예컨대을 갈 것입니다. 종종 모든 프롬프트에 대해 예 (yes)로 응답하도록 플래그를 설정할 수 있습니다 (예 : apt-get -y install).