associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Revisão 1e 2008-08-10 23:05:26

Excluir mensagem

RemovedorDeAcentos

Receita: Removedor de Acentos

A função abaixo devolve cópia de uma str substituindo os caracteres acentuados pelos seus equivalentes não acentuados. Note que ela também remove os caracteres gráficos não-ASCII (por exemplo, o travessão), e estes não são substituídos por nada.

Código

   1 #!/usr/bin/env python
   2 # -*- coding: utf-8 -*-
   3 
   4 from unicodedata import normalize
   5 
   6 def remover_acentos(txt, codif='utf-8'):
   7 
   8     ''' Devolve cópia de uma str substituindo os caracteres 
   9         acentuados pelos seus equivalentes não acentuados.
  10     
  11     ATENÇÃO: carateres gráficos não ASCII e não alfa-numéricos,
  12     tais como bullets, travessões, aspas assimétricas, etc. 
  13     são simplesmente removidos!
  14     
  15     >>> remover_acentos('[ACENTUAÇÃO] ç: áàãâä! éèêë? íìĩîï, óòõôö; úùũûü.')
  16     '[ACENTUACAO] c: aaaaa! eeee? iiiii, ooooo; uuuuu.'
  17     
  18     '''
  19     return normalize('NFKD', txt.decode(codif)).encode('ASCII','ignore')
  20     
  21 if __name__ == '__main__':
  22     from doctest import testmod
  23     testmod()

Exemplo de uso

   1 >>> remover_acentos('[ACENTUAÇÃO] ç: áàãâä! éèêë? íìĩîï, óòõôö; úùũûü.')
   2 '[ACENTUACAO] c: aaaaa! eeee? iiiii, ooooo; uuuuu.'

Veja também a receita TiradorDeAcentos

Volta para CookBook.


LucianoRamalho