• Lunes 20 de Mayo de 2024, 18:17

Autor Tema:  Problema Con Una Funcion  (Leído 2241 veces)

joy

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Problema Con Una Funcion
« en: Jueves 2 de Noviembre de 2006, 11:48 »
0
Hola a todos :

Tengo un problema con esta funcion.


def lematizarTexto(texto):

'''Pre: texto contiene la ruta del archivo que contiene un texto no vacío

Post: se ejecutará FreeLing, obteniendo la lista de lexemas junto con

las palabras originales y sus etiquetas.

duele doler VMIP3S0

Se devolverá la salida de FreeLing'''

#Free es una variable de usuario. contiene la ruta donde esta el Freeling

command='%Free%/analyzer.exe -f %Free%/data/config/es.cfg <'+ texto

(po,pi)= popen2(command)

return po


Lo que necesito es ejecutar un ejecutable de windows desde python. y la salida de este programa por lo que yo entiendo me da un fichero que no se porque no lo puedo leer;pone esto :

Hago la llamada:
lematizarTexto('mi gato')

<open file '%Free%analyzer.exe-f %Free%/data/config/es.cfg<mi gato', mode 'r'  at 0x00b54a20>

como puedo leer y sacar por pantalla lo que contiene el fichero, lo he probado todo Read(), hacer un bucle . . . no puedo.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Problema Con Una Funcion
« Respuesta #1 en: Jueves 2 de Noviembre de 2006, 14:07 »
0
Mira un código pequeño para leer un fichero, aunque no entiendo lo que hacer con tu función.
Código: Text
  1. archi = open('la dirección del fichero&#092;tufile.ext', 'r') #Se abre en modo lectura
  2. print f.read()
  3. f.close()
  4.  
  5.  
Con esto te debe mostrar toda la info del fichero.

Ojala te sirva.
Chao
El pasado son solo recuerdos, el futuro son solo sueños

joy

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: Problema Con Una Funcion
« Respuesta #2 en: Jueves 2 de Noviembre de 2006, 22:57 »
0
CREO QUE NO ME HE EXPLICADO BIEN :

LO QUE PRETENDO HACER ES EJECUTAR UN PROGRAMA QUE TENGO EN WINDOWS DESDE LA IDLE DE PYTHON. Y PODER RECOGER EL RESULTADO DEL PROGRAMA PARA PODER MANIPULARLO O POR LO MENOS IMPRIMIRLO EN PANTALLA.

SI ME PODEIS AYUDAR OS LO AGRADECERIA ESTOY BASTANTE ESTANCADA.

MERCI

NRM

  • Miembro MUY activo
  • ***
  • Mensajes: 279
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.narrowmind.com.ar
Re: Problema Con Una Funcion
« Respuesta #3 en: Viernes 3 de Noviembre de 2006, 13:45 »
0
Cuando ingreses codigo utiliza el tag CODE asi es mas simple la lectura.
Código: Text
  1. def lematizarTexto(texto):
  2.     '''Pre: texto contiene la ruta del archivo que contiene un texto no vacío
  3.     Post: se ejecutará FreeLing, obteniendo la lista de lexemas junto con
  4.     las palabras originales y sus etiquetas.
  5.     duele doler VMIP3S0
  6.     Se devolverá la salida de FreeLing'''
  7.  
  8.     #Free es una variable de usuario. contiene la ruta donde esta el Freeling
  9.     command='%Free%/analyzer.exe -f %Free%/data/config/es.cfg &#60;'+ texto
  10.     (po,pi)= popen2(command)
  11.     return po
  12.  

Ejemplo
Código: Text
  1. import os
  2. def listDir(directorio):
  3.     command='ls -l ' + directorio
  4.     pi, po = os.popen2(command)
  5.     return po.read()
  6.  

Nota que utilizo el os.popen2 en vez de simplemente popen2.