Ejecutando un comando interactivo desde Python

Tengo un script que quiero ejecutar desde Python (2.6.5) que sigue la lógica siguiente:

Preguntar al usuario por la contraseña. Parece que ("Ingresar contraseña:") (* Nota: la entrada no se muestra en la pantalla)Salida de información irrelevante.Preguntar al usuario por la respuesta ("Blah Blah filename.txt blah blah (S / N) ?:")

La última línea de solicitud contiene texto que necesito analizar (nombre de archivo.txt). La respuesta proporcionada no importa (el programa podría salir de aquí sin proporcionar uno, siempre que pueda analizar la línea)

Mis requerimientos sonalgo Similar aEnvolver una aplicación de línea de comandos interactiva en un script de python, pero las respuestas allí parecen un poco confusas, y las mías aún cuelgan incluso cuando el OP menciona que no lo hace por él.

Mirando a mi alrededor, he llegado a la conclusión de quesubprocess Es la mejor manera de hacerlo, pero tengo algunos problemas. Aquí está mi línea de Popen:

p = subprocess.Popen("cmd", shell=True, stdout=subprocess.PIPE, 
stderr=subprocess.STDOUT, stdin=subprocess.PIPE)

Cuando llamo aread() oreadline() enstdout, el indicador es impresora a la pantalla y se cuelga.

Si llamo awrite("password\n") parastdin, el aviso se escribe en la pantalla y se cuelga. El texto enwrite() No está escrito (no muevo el cursor una nueva línea).

Si llamop.communicate("password\n"), el mismo comportamiento que escribe ()

Estaba buscando algunas ideas aquí sobre la mejor manera de aportar astdin y posiblemente cómo analizar la última línea de la salida si te sientes generoso, aunque probablemente podría resolverlo eventualmente.

Respuestas a la pregunta(2)

Su respuesta a la pregunta