<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">El 3 de mayo de 2015, 22:07, Juan Camilo Hernandez Diaz <span dir="ltr"><<a href="mailto:camilo.hernandez@gmail.com" target="_blank">camilo.hernandez@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div style="font-family:verdana,sans-serif;font-size:small">Gracias por tu respuesta.</div><div style="font-family:verdana,sans-serif;font-size:small"><br></div><div style="font-family:verdana,sans-serif;font-size:small">Mira como estoy pasando los datos:</div><div style="font-family:verdana,sans-serif;font-size:small"><br></div><div><div style="font-family:verdana,sans-serif;font-size:small"><span style="background-color:rgb(255,255,255)"><font color="#000000"><i>cmd     =   "<span style="font-size:12.8px">/opt/tools/RT_reformat.pl</span>"</i></font></span></div><div style="font-family:verdana,sans-serif;font-size:small"><span style="background-color:rgb(255,255,255)"><font color="#000000"><i>par     =   "{0}/{1}".format(os.getcwd(), fname)</i></font></span></div><div style="font-family:verdana,sans-serif;font-size:small"><span style="background-color:rgb(255,255,255)"><font color="#000000"><i>cmd_exe =   subprocess.Popen([cmd, par], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)</i></font></span></div><div style="font-family:verdana,sans-serif;font-size:small"><span style="background-color:rgb(255,255,255)"><font color="#000000"><i>stdout, stderr = cmd_exe.communicate()</i></font></span></div><div style="font-family:verdana,sans-serif;font-size:small"><span style="background-color:rgb(255,255,255)"><font color="#000000"><i>print stdout, stderr</i></font></span></div><div style="font-family:verdana,sans-serif;font-size:small"><span style="background-color:rgb(255,255,255)"><font color="#000000"><br></font></span></div><div style="font-family:verdana,sans-serif;font-size:small"><span style="background-color:rgb(255,255,255)"><font color="#000000">tambien probe con:</font></span></div><div style="font-family:verdana,sans-serif;font-size:small"><span style="background-color:rgb(255,255,255)"><font color="#000000">cmd = </font></span><i style="color:rgb(0,0,0)">"<span style="font-size:12.8px">/opt/tools/RT_reformat.pl </span></i><i style="color:rgb(0,0,0)">{0}/{1}".format(os.getcwd(), fname), eliminando logicamente lo referente a la variable par-</i></div><div style="font-family:verdana,sans-serif;font-size:small"><span style="background-color:rgb(255,255,255)"><font color="#000000"><br></font></span></div><div><span style="background-color:rgb(255,255,255)"><font color="#000000"><font face="verdana, sans-serif">la variable <b>par</b> 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?</font></font></span></div></div></div></blockquote><div><br></div><div>Está correcto (aunque mejor usar os.path.join para la ruta del fichero)<br><br></div><div>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.<br><br></div><div>Prueba a poner una espera (time.sleep()) antes de communicate a ver si termina bien.<br><br> <br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><br></div><div style="font-family:verdana,sans-serif;font-size:small"><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-05-03 14:31 GMT-05:00 Chema Cortes <span dir="ltr"><<a href="mailto:pych3m4@gmail.com" target="_blank">pych3m4@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span>El 3 de mayo de 2015, 18:56, Juan Camilo Hernandez Diaz <span dir="ltr"><<a href="mailto:camilo.hernandez@gmail.com" target="_blank">camilo.hernandez@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div style="font-family:verdana,sans-serif;font-size:small">Un saludo a todos.</div><div style="font-family:verdana,sans-serif;font-size:small"><br></div><div style="font-family:verdana,sans-serif;font-size:small">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.</div><div style="font-family:verdana,sans-serif;font-size:small"><br></div><div style="font-family:verdana,sans-serif;font-size:small">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)</div><div style="font-family:verdana,sans-serif;font-size:small"><br></div><div style="font-family:verdana,sans-serif;font-size:small">Hasta el momento he probado con os.system, subsystem.call y subsystem.Popen, todos con el mismo resultado:</div></div></blockquote><div><br></div></span><div>Entiendo que por "subsystem" te refieres a "subprocess"<br> </div><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div style="font-family:verdana,sans-serif;font-size:small"><br></div><div><font face="verdana, sans-serif"><i>substr outside of string at /opt/tools/RT_reformat.pl line 77, <IN> line 15729</i></font><br></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">Igualmente, trate de generar un bash script que fuera llamado desde mi script python y ejecutara el modulo en perl; igual resultado.</font></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">Cuando ejecuto el script directamente en bash funciona sin problemas y genera los archivos requeridos ¿Alguna sugerencia de como superar esto?</font></div><div style="font-family:verdana,sans-serif;font-size:small"><br></div></div></blockquote><div><br><br></div></span><div>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.<br><br>Puede que la documentación te ayude:<br><a href="https://docs.python.org/2/library/subprocess.html#replacing-older-functions-with-the-subprocess-module" target="_blank">https://docs.python.org/2/library/subprocess.html#replacing-older-functions-with-the-subprocess-module</a><span><font color="#888888"><br></font></span></div></div><span><font color="#888888"><br clear="all"><br>-- <br><div>Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales": <a href="http://ch3m4.org/blog" target="_blank">http://ch3m4.org/blog</a><br>Buscador Python Hispano: <a href="http://ch3m4.org/python-es" target="_blank">http://ch3m4.org/python-es</a></div>
</font></span></div></div>
<br></div></div>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div><div dir="ltr"><span style="border-collapse:collapse;font-family:Tahoma;font-size:13px"><div>JUAN CAMILO HERNÁNDEZ DÍAZ</div><div><br></div></span></div></div>
</font></span></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div>Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales": <a href="http://ch3m4.org/blog" target="_blank">http://ch3m4.org/blog</a><br>Buscador Python Hispano: <a href="http://ch3m4.org/python-es" target="_blank">http://ch3m4.org/python-es</a></div>
</div></div>