Envolver una aplicación de línea de comandos interactiva en un script de python

Estoy interesado en controlar una aplicación CLI interactiva desde llamadas a python.

Supongo que en el nivel más básico necesito un script de Python que inicie una aplicación CLI en el sistema operativo host. Canalice cualquier cosa desde la entrada estándar a la aplicación cli, y luego canalice cualquier salida desde la aplicación cli a la salida estándar.

Desde esta base, debería ser bastante sencillo realizar un procesamiento en la entrada y salida

Para ser honesto, probablemente solo necesito un indicador de cómo se llama la técnica. No tengo idea de lo que necesito estar buscando.

¿ PExpect se ajusta a sus necesidades?

Tal vez usted quiera algo de Subprocess ( MOTW ).

Uso un código como este para hacer llamadas al shell:

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