[Python-es] Tratamiento de datos.

Jose M.Allegue jmallegue en gmail.com
Jue Jun 5 20:21:07 CEST 2014


Muchas gracias.



Enviado con MailTrack
<https://mailtrack.io/install?source=signature&lang=es&referral=jmallegue@gmail.com&idSignature=23>


El 5 de junio de 2014, 19:36, José Sabater Montes <jsm en iaa.es> escribió:

>
> Hola,
>
> El 05/06/2014, a las 18:08, Jose M.Allegue <jmallegue 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)
>
> Jeje, es la expresión regular (
> https://es.wikipedia.org/wiki/Expresi%C3%B3n_regular). Son un pequeño
> mundo en sí mismas pero pueden ser muy potentes en estos casos.
> Lo que hace es introducir en “alt" una lista (o varias) con los valores
> que extrae de la línea “line” que se ajustan a las reglas de la expresión
> regular indicada. La expresión regular en sí es la cadena "(?<= )(\d{1,2})
> (\d{1,2}\.\d{1,2}) ([NS]),\s+(\d{1,2}) (\d{1,2}\.\d{1,2}) ([EW]).*”. Quiero
> mencionar que hay otras alternativas que podrían funcionar e incluso
> adaptarse mejor pero esta es la que se me ha ocurrido.
>
> Si la miramos por partes:
>  * "(?<= )" esto indica que lo que viene detrás empezaría con un carácter
> en blanco.
>  * "(\d{1,2})" esto extrae uno o dos dígitos como primer elemento de la
> lista.
>  * " (\d{1,2}\.\d{1,2})" después de un espacio en blanco extrae uno o dos
> dígitos seguidos de un punto y uno o dos dígitos más.
>  * " ([NS])" después de otro espacio extrae un carácter “N" o “S”.
>  * ",\s+(\d{1,2})" después de una coma y un número indeterminado de
> espacios extrae uno o dos dígitos.
>  * " (\d{1,2}\.\d{1,2})" de nuevo se extrae una combinación como la de
> antes.
>  * " ([EW])"  después de un espacio extrae un carácter “E" o “W”.
>  * “.*"  el resto de la cadena puede ser cualquier cosa.
> Al final tienes en alt una lista de listas de 6 elementos. En tu caso alt
> solo tiene un elemento, ya que solo encuentra el patrón para las
> coordenadas una vez como mucho en cada línea. Este elemento se compone de
> los grados de latitud, minutos decimales de latitud, N o S, grados de
> longitud, minutos decimales de longitud y E o W.
>
> Un saludo.
>
> _______________________________________________
> 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/20140605/bcc90ce9/attachment.html>


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