Estoy utilizando el subproceso módulo para llamar a un programa externo (plink.exe) para iniciar sesión en un servidor; pero cuando llamo a comunicarse para leer la salida, está bloqueando. El código es el siguiente:python subprocess comunicar() bloque
import subprocess
process = subprocess.Popen('plink.exe [email protected] -pw 123456'.split(), shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print process.communicate() #block here
Sé que el bloque se debe a que plink.exe
aún en marcha; pero necesito leer la salida antes de que termine el subproceso. ¿Hay alguna forma de hacer eso?
¿Es necesario interactuar con plink, o sólo tiene que hacer la llamada y leer la salida estándar sin bloqueo? – Khelben
relacionado: [Python: lee la entrada de transmisión de subprocess.communicate()] (http://stackoverflow.com/q/2715847/4279) – jfs