Foros del Web » Programando para Internet » Python »

Crear extractor de texto con delimitadores

Estas en el tema de Crear extractor de texto con delimitadores en el foro de Python en Foros del Web. Tengo un archivo de texto: dTexto1dTexto2dTexto3d El texto debe verse asi: dTexto1d dTexto2d dTexto3d Para eso escribi este codigo: Código: f = open('archivo.txt','r',) una_linea = ...
  #1 (permalink)  
Antiguo 01/08/2011, 13:28
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta Crear extractor de texto con delimitadores

Tengo un archivo de texto:
dTexto1dTexto2dTexto3d
El texto debe verse asi:
dTexto1d
dTexto2d
dTexto3d
Para eso escribi este codigo:
Código:
f = open('archivo.txt','r',)
una_linea = f.readline()
for i in una_linea:
    if i == 'd':
        delimitador1 = una_linea.index(i)
        t = una_linea[delimitador1 + 1]
        for t in una_linea:
            if t == 'd':
                delimitador2 = una_linea.index(t)
print (una_linea[delimitador1:delimitador2])
i = t
f.close()
El problema es como envio i = t al primer for para que empieze desde esa posicion.

Última edición por Bael_Balzac; 01/08/2011 a las 13:41
  #2 (permalink)  
Antiguo 01/08/2011, 17:09
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Crear extractor de texto con delimitadores

Como recomendación otra vez, sera mejor que al menos uses csv para guardar tus datos.

Es mas sencillo de usar. Bueno me imagino que mas o menos esto es lo quieres.
Código Python:
Ver original
  1. linea = "dTexto1dTexto2dTexto3d"
  2.  
  3. linea_limpia = linea.strip("d")  #Quita los 'd', al principio y final de la linea.
  4. tokens = linea_limpia.split("d") #Ahora divide la linea separandolas por 'd'
  5. for token in tokens:             #Por cada token en tokens
  6.     print "d%sd" % token         #Imprime de la manera deseada
¿Que pasa cuando tienes que guardar una 'd'?
¿Como distingues que es una 'd' que es parte del texto o que es un separador?

Por eso y otras cosas es mas aconsejable usar csv, que no es lo mejor del mundo, pero para cosas sencillas te puede servir mucho.
  #3 (permalink)  
Antiguo 01/08/2011, 19:08
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Crear extractor de texto con delimitadores

Muchas gracias,ya funciona.
Dentro del texto no aparece ninguna 'd' fue solo un ejemplo solo hay texto en japones,el separador presente dentro el texto es '\x00' ,obtuve el siguiente texto:
Código:
ê
0
2009/03/17 12:23:37

ʽ





ʼ
プロローグ
Es posible que solo imprima:
2009/03/17 12:23:37
プロローグ
  #4 (permalink)  
Antiguo 01/08/2011, 19:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Crear extractor de texto con delimitadores

Eso dependerá del texto. Como no se que formato siga no estoy muy seguro de que es lo que debería de parsear.

Si me das el texto original o el formato de una manera mas formal entonces te podría decir como hacerlo, sin mas datos no creo que te pueda ayudar mucho.
  #5 (permalink)  
Antiguo 01/08/2011, 22:10
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Crear extractor de texto con delimitadores

El archivo esta en http://www.usaupload.net/d/blc8bvu1x3a
Para verlo lo codificas en utf_16_le.
  #6 (permalink)  
Antiguo 02/08/2011, 20:47
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Crear extractor de texto con delimitadores

Parece ser que lo que buscas es texto en algún archivo de un juego de psp.

Lo mas aconsejable en este caso sería usar el modulo struct, desafortunadamente como no conoces el formato de archivo la tarea se complica muchísimo. Afortunadamente ya hay gente que saco el texto.
  #7 (permalink)  
Antiguo 03/08/2011, 10:05
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Crear extractor de texto con delimitadores

El texto lo pudieron extraer usando el fuzzy method,hay algun libro que mencione este metodo.
Es posible imprimir en pantalla el offset del primer caracter de un string de un archivo en formato de texto,para poder insertar el texto traducido a partir de esa posicion.
Gracias razpeitia por responder.
  #8 (permalink)  
Antiguo 03/08/2011, 10:55
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Crear extractor de texto con delimitadores

fuzzy method es una tecnica para desarrollar un tipo de inteligencia artificial.

Para mas información puedes leer sobre lógica difusa.

No entendí muy bien tu segunda pregunta, pero si puedes jugar con el puntero del archivo para poder sobreescribir en cierta parte del archivo. Para mas información puedes ver la documentación.

Etiquetas: delimitadores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:19.