Ayuda con expresiones regulares [Python]

Iniciado por wolvelopez, 26 Julio 2011, 15:44 PM

0 Miembros y 1 Visitante están viendo este tema.

wolvelopez

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.
"La revolución es algo que se lleva en el alma, no en la boca para vivir de ella."

Novlucker

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
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

wolvelopez

Son tabulaciones.
Estoy mirando lo que me has pasado haber si consigo enterarme de las expresiones regulares.
Gracias.
"La revolución es algo que se lleva en el alma, no en la boca para vivir de ella."

Novlucker

En ningún momento te he recomendado expresiones regulares, sino simplemente un método.

Código (python) [Seleccionar]
cadena = 'esto es una cadena separada por espacios'
miarray = cadena.split(' ')


Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

wolvelopez

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.
"La revolución es algo que se lleva en el alma, no en la boca para vivir de ella."

Shell Root

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?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

wolvelopez

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.
"La revolución es algo que se lleva en el alma, no en la boca para vivir de ella."

wolvelopez

Solucionado:
valores = re.findall("([^\s]*)\s*", linea)[ : -1 ]
Muchas gracias.
"La revolución es algo que se lleva en el alma, no en la boca para vivir de ella."