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.
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
Son tabulaciones.
Estoy mirando lo que me has pasado haber si consigo enterarme de las expresiones regulares.
Gracias.
En ningún momento te he recomendado expresiones regulares, sino simplemente un método.
cadena = 'esto es una cadena separada por espacios'
miarray = cadena.split(' ')
Saludos
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.
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?
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.
Solucionado:
valores = re.findall("([^\s]*)\s*", linea)[ : -1 ]
Muchas gracias.