martes, mayo 22, 2007

Comunicación entre procesos

Como ya sabeis, intento llamar desde python a la aplicación exifgrep y recoger los resultados de la misma para rellenar los datos de la foto en la base de datos.

Buscando por la documentación de python he encontrado 2 opciones.

  1. Dentro del módulo os está popen3, que executa y devuelve 3 descriptores de fichero en los cuales tienes los flujos de entrada, salida y error de la aplicación llamada. El único problema que he visto es que no se la forma de saber cuando el proceso hijo ha terminado.
  2. Existe otra forma. el módulo popen2 con la clase Popen3, digamos que tiene una propiedad fromchild que te devuelve los datos de salida del proceso hijo, Popen4 devuelve en este flujo tanto error como salida. La ventaja de esta clase es que tiene el método wait() que espera a que termine el proceso hijo. Desventaja, solo está disponible en unix
De momento me decantaré por la segunda opción en un futuro ya veremos. Desde luego, un día y ya mi aplicación no es multiplataforma :-(

Como siempre, si a alguién se le ocurre algo mejor, encantado de escucharos

No hay comentarios: