[Python-es] Modulo subprocess y Script Perl
Juan Camilo Hernandez Diaz
camilo.hernandez en gmail.com
Dom Mayo 3 22:07:23 CEST 2015
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?
2015-05-03 14:31 GMT-05:00 Chema Cortes <pych3m4 en gmail.com>:
>
>
> El 3 de mayo de 2015, 18:56, Juan Camilo Hernandez Diaz <
> camilo.hernandez en 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 en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
--
JUAN CAMILO HERNÁNDEZ DÍAZ
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20150503/06ae8b6d/attachment.html>
Más información sobre la lista de distribución Python-es