Re: estandarizacion de acentos, ñ-s y mayusculas

Alberto Valverde alberto en toscat.net
Mar Mar 27 14:49:15 CEST 2007


On Mar 27, 2007, at 11:22 AM, joana salgado gomez wrote:

>
>   Hola [1]chic en s:
>
>   Necesito estandarizar las palabras que recibo desde una web y que
>   introduzco en un archivo con extension.txt. Es decir quiero que  
> luego
>   a la hora de acceder a las palabras me considere que:
>
>   arándano=arandano
>   pimentón=pimenton
>
>   Es decir que considere que una palabra escrita con tilde y sin tilde
>   sean la iguales. Y lo mismo para las mayusculas:
>
>   Arandanos=arándanos
>   pimenton=Pimentón
>
>
>   He estado leyendo algo y he entendido que poniendo esto:# -*-  
> coding:
>   UTF8     -*-
>    al prindipio de cada uno de los programas se solucionaria lo de las
>   tildes, es asi ?????????
>

No, éso sólo le dice al interprete que tu edior de texto usa utf8  
como codificación (claro que también tienes que configurar tu editor  
para que lo use)

Te paso una función que uso para normalizar los acentos que puede que  
te inspire:

import unicodedata

def _normalize(char):
     deco = unicodedata.decomposition(char)
     if deco:
         try:
             idx = int(deco.split()[0],16)
         except ValueError:
             return '-'
         return unichr(idx)
     return char

def slugify(s):
	return ''.join([_normalize(c) for c in s])

Tendrás que adaptarla para normalizar mayúsculas (fácil, usa  
cadena.lower()) y alguna cosa más pero creo que es una buena base  
para empezar... espero te sirva.

Un saludo, Alberto



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