Python: cómo leer stdout de subproceso de forma no bloqueante

Estoy tratando de hacer un script python simple que inicie un subproceso y monitoree su salida estándar. Aquí hay un fragmento del código:

process = subprocess.Popen([path_to_exe, os.path.join(temp_dir,temp_file)], stdout=subprocess.PIPE)
while True:   
    output=process.stdout.readline()
    print "test"

El problema es que el script se cuelgaoutput=process.stdout.readline() y que la lineaprint "test" solo se ejecuta después de que finaliza el subproceso.

¿Hay alguna manera de leer la salida estándar e imprimirla sin tener que esperar a que termine el subproceso?

El subproceso que estoy iniciando es un binario de Windows para el que no tengo el código fuente.

He encontrado varias preguntas similares, pero las respuestas solo son aplicables en Linux o en caso de que tenga la fuente del proceso que estoy comenzando.

Respuestas a la pregunta(2)

Su respuesta a la pregunta