Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: wolvelopez en 26 Julio 2011, 15:44 pm



Título: Ayuda con expresiones regulares [Python]
Publicado por: wolvelopez en 26 Julio 2011, 15:44 pm
Hola compañeros.
Estoy desarrollnado en python una pequeña aplicacion pero llevo atascado un tiempo con esto.
Tengo un fichero .txt con 3 columnas de este tipo:

Codigo    Categoria    Subcategoria
0001      HDXC         LAMP4JIR
0002      JHFD          HH876GJ

Me conecto bien al fichero y con readline() obtengo la cadena pero dentro de la cadena necesito separar las columnas y obterner por separado los 3 valores que se presentan. He probado con find() pero no veo la manera.
Si alguien mas avispao en expresiones regulares o cadenas me ayuda le estaría agradecido.
Gracias.


Título: Re: Ayuda con expresiones regulares
Publicado por: Novlucker en 26 Julio 2011, 15:50 pm
Se supone que dichas columnas estan separadas por espacios o tabulaciones, por lo cual puedes utilizar split
http://docs.python.org/library/stdtypes.html#str.split

Saludos


Título: Re: Ayuda con expresiones regulares
Publicado por: wolvelopez en 26 Julio 2011, 19:22 pm
Son tabulaciones.
Estoy mirando lo que me has pasado haber si consigo enterarme de las expresiones regulares.
Gracias.


Título: Re: Ayuda con expresiones regulares
Publicado por: Novlucker en 26 Julio 2011, 19:25 pm
En ningún momento te he recomendado expresiones regulares, sino simplemente un método.

Código
  1. cadena = 'esto es una cadena separada por espacios'
  2. miarray = cadena.split(' ')

Saludos


Título: Re: Ayuda con expresiones regulares
Publicado por: wolvelopez en 26 Julio 2011, 20:29 pm
Perdona Novlucker llevas razón.
Es que mas tarde estuve leyendo sobre expresiones regulares porque resulta que algunas veces tengo una tabulacion y otras 2 o 3 tabulaciones. Depende de como me pasen el fichero.


Título: Re: Ayuda con expresiones regulares [Python]
Publicado por: Shell Root en 26 Julio 2011, 23:52 pm
Pero el número de tabulaciones son generales por archivo o por linea, es decir, en el archivo1.txt la tabulación es de 1 en todos los registros, pero en archivo2.txt la tabulación es de 3?


Título: Re: Ayuda con expresiones regulares [Python]
Publicado por: wolvelopez en 27 Julio 2011, 00:03 am
No, en el archivo1.txt la tabulacion entre una columna y otra puede ser de 2 tabulaciones y entre otras 2 columnas puede ser de 1 tabulacion, ej:
columna1    columna2                columna3
------------------------------------------------
dato           dato                       dato

Las tabulaciones me va variando dependiendo de los archivos que me van pasando.
Muchas gracias.


Título: Re: Ayuda con expresiones regulares [Python]
Publicado por: wolvelopez en 27 Julio 2011, 15:53 pm
Solucionado:
Código:
valores = re.findall("([^\s]*)\s*", linea)[ : -1 ]
Muchas gracias.