[[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/

Responder a