[Python-es] Tratamiento de datos.

Jose M.Allegue jmallegue en gmail.com
Vie Jun 6 11:19:55 CEST 2014


Ya voy viendo el "camino".
Gracias por vuestra ayuda.


El 6 de junio de 2014, 8:01, Kiko <kikocorreoso en gmail.com> escribió:

>
>
>
> El 6 de junio de 2014, 9:19, Jose M.Allegue <jmallegue en gmail.com>
> 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 <kikocorreoso en gmail.com> 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
>>> Python-es en python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>>
>>
>> --
>> jose m allegue
>>
>> jmallegue en gmail.com
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
jose m allegue

jmallegue en gmail.com
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140606/51cfe3b0/attachment.html>


Más información sobre la lista de distribución Python-es