2009-10-14 10 views
15

Estoy interesado en el control de una aplicación CLI interactiva de llamadas pitón.Envolviendo una aplicación de línea de comandos interactiva en un script en Python

supongo que en el nivel más básico que necesita un script en Python que se iniciará una aplicación CLI en el sistema operativo anfitrión. Pipe cualquier cosa de la entrada estándar a la aplicación CLI, y luego canalizar cualquier salida de la aplicación cli en stdout.

partir de esta base Debe ser bastante sencillo de hacer algún tipo de procesamiento en la entrada y la salida

Para ser honesto, probablemente, sólo hay un puntero en lo que la tecnica se llama. No tengo idea de lo que necesito buscar.

Respuesta

5

¿El PExpect se adapte a sus necesidades?

11

Tal vez usted quiere algo de Subprocess (MOTW).

que use el código como este para hacer llamadas fuera de la ventana:

from subprocess import Popen, PIPE 

## shell out, prompt 
def shell(args, input=''): 
    ''' uses subprocess pipes to call out to the shell. 

    args: args to the command 
    input: stdin 

    returns stdout, stderr 
    ''' 
    p = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE) 
    stdout, stderr = p.communicate(input=input) 
    return stdout, stderr 
+0

+1 desde 'biblioteca subprocess' es parte de la Biblioteca de Python estándar, y hace el trabajo. –

+0

Más que eso, la Popen puede utilizar una lista de argumentos como argumentos! – edomaur

Cuestiones relacionadas