[[reenvio de nuevo el mensaje a la lista]] Lo del os.path.join es un modo de hacerlo más "portable", si lo necesitaras:
par = os.path.join(os.getcwd(), fname) o más directo par = os.path.abspath(fname) Seguramente que el script de perl esté lanzando sus propios PIPEs. Prueba a ejecutarlo con shell=True ---------- Mensaje reenviado ---------- De: Juan Camilo Hernandez Diaz <camilo.hernan...@gmail.com> Fecha: 4 de mayo de 2015, 4:50 Asunto: Re: [Python-es] Modulo subprocess y Script Perl Para: p...@ch3m4.org Chema. Te cuento he probado la opcion del time.sleep(60) y el problema persiste, también verifique con el env del bash y cuando es ejecutado muestra el mismo entorno. El os.path.join nunca lo he trabajado, me podrias ayudar con un ejemplo para ver que pasa? 2015-05-03 18:46 GMT-05:00 Chema Cortes <pych...@gmail.com>: > > El 3 de mayo de 2015, 22:07, Juan Camilo Hernandez Diaz < > camilo.hernan...@gmail.com> escribió: > >> Gracias por tu respuesta. >> >> Mira como estoy pasando los datos: >> >> *cmd = "/opt/tools/RT_reformat.pl"* >> *par = "{0}/{1}".format(os.getcwd(), fname)* >> *cmd_exe = subprocess.Popen([cmd, par], shell=False, >> stdout=subprocess.PIPE, stderr=subprocess.PIPE)* >> *stdout, stderr = cmd_exe.communicate()* >> *print stdout, stderr* >> >> tambien probe con: >> cmd = *"/opt/tools/RT_reformat.pl **{0}/{1}".format(os.getcwd(), fname), >> eliminando logicamente lo referente a la variable par-* >> >> la variable *par* hace referencia a un archivo de texto (Sensor. >> 2015022300) plano que contiene un listado de sensores y valores de >> temperatura, la salida del comando es un archivo en texto plano con un >> formato especifico ¿Estoy haciendo algo mal? >> > > Está correcto (aunque mejor usar os.path.join para la ruta del fichero) > > Intuyo que hay una mala comunicación entre el script de perl y python. > Parece como que el código python acabe antes de que el script de perl haya > procesado todo el fichero. Precisamente, communicate debería esperar hasta > que el subproceso acabe, pero puede que el script de perl se dedique a > lanzar otros procesos que python no ve. > > Prueba a poner una espera (time.sleep()) antes de communicate a ver si > termina bien. > > > > >> >> >> 2015-05-03 14:31 GMT-05:00 Chema Cortes <pych...@gmail.com>: >> >>> >>> >>> El 3 de mayo de 2015, 18:56, Juan Camilo Hernandez Diaz < >>> camilo.hernan...@gmail.com> escribió: >>> >>>> Un saludo a todos. >>>> >>>> Tengo la necesidad de ejecutar un script en perl, el cual es provisto >>>> por un tercero; este básicamente efectúa una consulta y genera un archivo >>>> en un formato especifico. >>>> >>>> He programado una función en python que se encarga de ejecutar este >>>> archivo, y continuar la ejecución de las demás tareas. Sin embargo, este no >>>> se ejecuta como es debido (no genera el archivo de salida) >>>> >>>> Hasta el momento he probado con os.system, subsystem.call y >>>> subsystem.Popen, todos con el mismo resultado: >>>> >>> >>> Entiendo que por "subsystem" te refieres a "subprocess" >>> >>> >>>> >>>> *substr outside of string at /opt/tools/RT_reformat.pl line 77, <IN> >>>> line 15729* >>>> >>>> Igualmente, trate de generar un bash script que fuera llamado desde mi >>>> script python y ejecutara el modulo en perl; igual resultado. >>>> >>>> Cuando ejecuto el script directamente en bash funciona sin problemas y >>>> genera los archivos requeridos ¿Alguna sugerencia de como superar esto? >>>> >>>> >>> >>> Por el error, parece que el script de perl no encuentra nada en el >>> stream de entrada <IN>. Cuando dices que el script "efectúa una consulta", >>> probablemente espera encontrar algo que deberías suministrar. Tal vez, pida >>> que le introduzcas un dato o simplemente pulsar una tecla para continuar. >>> Por defecto, el proceso que lanza python no tiene ninguna entrada de datos. >>> >>> Puede que la documentación te ayude: >>> >>> https://docs.python.org/2/library/subprocess.html#replacing-older-functions-with-the-subprocess-module >>> >>> >>> -- >>> Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": >>> http://ch3m4.org/blog >>> Buscador Python Hispano: http://ch3m4.org/python-es >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es@python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> JUAN CAMILO HERNÁNDEZ DÍAZ >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es@python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": > http://ch3m4.org/blog > Buscador Python Hispano: http://ch3m4.org/python-es > -- JUAN CAMILO HERNÁNDEZ DÍAZ -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog Buscador Python Hispano: http://ch3m4.org/python-es
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/