Ya voy viendo el "camino". Gracias por vuestra ayuda.
El 6 de junio de 2014, 8:01, Kiko <[email protected]> escribió: > > > > El 6 de junio de 2014, 9:19, Jose M.Allegue <[email protected]> > escribió: > >> Buenos días. >> >> Ya voy viendo un poco por donde se puede "atacar" el asunto. Gracias por >> todo. >> La pregunta, en realidad que se me plantea ¿ como trato el archivo >> completo? su contenido como str o como lista? >> Quizás esté preguntando un disparate de novato pero voy a intentar >> explicarlo. >> Pretendo "buscar el contenido de una linea determinada y extraer los >> caracteres, pasarlos a float o int y trabajar con ellos. Pero para eso >> necesito conocer cual es el indice de la linea donde está la información >> que quiero procesar. >> ejemplo: quiero buscar la linea que contiene el dato Track Spacing (NM): >> y extraer el valor 1,00 >> como hago para buscar linea que contenga un valor que comience pro >> Track* y me devuelva el indice de la linea ? a partir de ese índicie ya >> puedo procesar los caracteres. >> Otra cosa es que el archivo tiene una longitud variable, es decir, no >> siempre tiene el mismo número de líneas, por lo que necesito buscar en cada >> momento cual es el índice de la linea de la que quiero extraer la >> información. >> >> Ahora bien, todo esto lo he podido realizar en excel, pero se trata de >> automatizarlo y tener mayor control sobre el proceso. >> >> Por todo esto la pregunta; Lo proceso como una cadena con sus saltos de >> linea, etc o por el contrario lo "meto" todo en una lista y cada linea será >> un elemento de la misma, o "pasandolo" a csv ? >> >> Como dice David, el archivo es un poco 2raro!".... tiene esta "forma" >> para que pueda ser leido por un GIS en particular, es decir, estos datos >> leen y se presentan en pantalla, pero claro desde ese momento no se pueden >> procesar y la idea e tener mas control sobre ellos. >> > > Yo leo archivos "raros" todos los días. > Normalmente, si lo puedo resolver sin expresiones regulares lo hago de la > siguiente forma: > > Leo línea a línea, cada línea es un string y dentro de ese string busco lo > que necesito: > > Para leer todo como un string (es Python 3): > *data = open('kk.txt', 'r').read()* > > Para tener cada una de las filas: > *data = data.split('\n')* > > De esta forma tengo cada línea como un string en una lista. Ahora puedo > iterar por cada línea (i.e. elemento de la lista) y saber en qué línea está > lo que busco. Lo que busco lo puedo obtener usando 'in' para saber si está > contenido en el elemento/string/línea: > *for i, linea in enumerate(data):* > * if 'cadena_que_busco' in linea:* > * # código para hacer lo que necesito, esto lo dejo para tí, aquí > puedes usar una regex, métodos de la clase str,...* > > Espero que te clarifique un poco las cosas. > > >> >> Gracias por vuestra ayuda. >> >> >> >> El 6 de junio de 2014, 6:56, Kiko <[email protected]> escribió: >> >>> >>>>> >>>>> > No entiendo esta linea de código: >>>>> > alt = re.findall("(?<= )(\d{1,2}) (\d{1,2}\.\d{1,2}) >>>>> ([NS]),\s+(\d{1,2}) (\d{1,2}\.\d{1,2}) ([EW]).*", line) >>>>> >>>>> >>> Además de lo que te ha explicado José, aquí ( >>> http://pybonacci.wordpress.com/2013/02/21/regex-mediante-ejemplos/) >>> tienes un mini tutorial en castellano para adentrarte en el mundo de las >>> expresiones regulares. Si está mal escrito pídele explicaciones al autor >>> :-) >>> >>> De todas formas, si es algo sencillo como lo que quieres hacer en tu >>> caso se puede resolver como ha puesto Daπid, resulta más sencillo y >>> legible. >>> >>> _______________________________________________ >>> Python-es mailing list >>> [email protected] >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> jose m allegue >> >> [email protected] >> >> _______________________________________________ >> Python-es mailing list >> [email protected] >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > [email protected] > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- jose m allegue [email protected]
_______________________________________________ Python-es mailing list [email protected] https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
