2012-05-20 4 views
5

czytanie Jak osiągnąć następujące funkcje:Python wykonać wiersz polecenia, wysyłając wejście i wyjście

  1. Python wykonuje polecenie powłoki, która czeka na użytkownika do input coś
  2. gdy użytkownik wpisał input, reakcje programu z pewnym output
  3. Pythonie oddaje output
+3

Zobacz [moduł podprocesu] (http://docs.python.org/library/subprocess.html). – RanRag

+0

W bardziej ogólnym przypadku przydatne może być [pexpect] (http://www.noah.org/python/pexpect/). – jfs

Odpowiedz

7

prawdopodobnie chcesz subprocess.Popen. Aby komunikować się z procesem, należy użyć metody communicate.

np.

process=subprocess.Popen(['command','--option','foo'], 
         stdin=subprocess.PIPE, 
         stdout=subprocess.PIPE, 
         stderr=subprocess.PIPE) 
inputdata="This is the string I will send to the process" 
stdoutdata,stderrdata=process.communicate(input=inputdata)