2012-05-20 12 views
5

lectura ¿Cómo lograr la funcionalidad siguiente:Python ejecutar la línea de comandos, el envío de entrada y salida

  1. Python ejecuta un comando shell, que espera a que el usuario input algo
  2. después de que el usuario escribió el input, las respuestas de los programas con algunos output
  3. Python captura la output
+3

Eche un vistazo a [módulo de subproceso] (http://docs.python.org/library/subprocess.html). – RanRag

+0

En un caso más general [pexpect] (http://www.noah.org/python/pexpect/) podría ser útil. – jfs

Respuesta

7

es probable que desee subprocess.Popen. Para comunicarse con el proceso, usaría el método communicate.

p. Ej.

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) 
Cuestiones relacionadas