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
Veja também a receita TiradorDeAcentos
Volta para CookBook.