No puedo interactuar con el subproceso creado por Popen

Estoy usando python 2.5 en windows xp. En esto estoy usando un subproceso para ejecutar mi shell, ahora cómo debo ejecutar gdb en el shell usando un subproceso.

mi código:

PID = subprocess.Popen('C:/STM/STxP70_Toolset_2010.2/bin/STxP70.bat', shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE). 

Ahora el shell se abrirá, a continuación, si bash ejecutar gdb usando comunicarme

PID.communicate (“gdb”),

“gdb” no se está ejecutando en el shell.

¿Qué debo hacer para esto?

Tu codigo:

  1. Inicia STxP70.bat
  2. Escribe la cadena “gdb” (sin una nueva línea de terminación) en su entrada estándar y cierra la entrada estándar.
  3. Está leyendo su salida hasta el final del archivo. PID.communicate no le permitirá interactuar más con el subproceso: escribe la cadena proporcionada y luego recostack todos los resultados hasta que finaliza el proceso.
  4. Cuando STxP70.bat se completa, el subproceso termina.

Tenga en cuenta que si “shell se abrirá” significa que una nueva ventana aparece con un indicador de shell en ella, está jodido. Significaría que STxP70.bat lo inició con el comando ‘start’ y no puedes comunicarte con eso, porque no está heredando tus stdin / stdout / stderr pipe. Tendría que crear su propia modificación del lote que no utilizará “inicio”.

.