[python-brasil] O jeito mais rápido de remover acentos de uma string

2,302 views
Skip to first unread message

Luciano Ramalho

unread,
Aug 10, 2008, 11:10:12 PM8/10/08
to python-brasil

De vez em quando a gente precisa remover acentos de uma string, por
exemplo, para tranformar o nome de uma cidade como "São Gonçalo" em
uma URL legível tipo http://exemplo.com.br/sao-goncalo em vez de uma
URL cheia de hexadecimais.

Outro dia num comentário do Python Cookbook eu achei este jeito de fazer:

from unicodedata import normalize
normalize('NFKD', txt.decode(codif)).encode('ASCII','ignore')

Um exemplo mais completo de uso está no PythonBrasil:

http://www.pythonbrasil.com.br/moin.cgi/RemovedorDeAcentos

[ ]s
Luciano

PS. Este método substitui as letras acentuadas pelas equivalentes sem
acentos, porém qualquer caractere que não tenha um equivalente ASCII é
descartado. Por exemplo, travessões, bullets e aspas tipográficas
(aquelas assimétricas), tudo isso é removido da string. Ou seja, serve
para limpar nomes de gente ou de cidades, mas não para limpar textos
completos.

__._,_.___
,-----------------------------------------------------------.
| Antes de enviar um e-mail para o grupo leia:              |
| http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar  |
| E se você é usuário do BOL lembre-se de cadastrar o       |
| e-mail do grupo na lista branca do seu sistema anti-spam. |
`-----------------------------------------------------------´
Atividade nos últimos dias
Visite seu Grupo
Yahoo! Mail

Conecte-se ao mundo

Proteção anti-spam

Muito mais espaço

Yahoo! Barra

Instale grátis

Buscar sites na web

Checar seus e-mails .

Yahoo! Grupos

Crie seu próprio grupo

A melhor forma de comunicação

.

__,_._,___

Humberto Diogenes

unread,
Aug 11, 2008, 1:34:53 AM8/11/08
to python...@yahoogrupos.com.br


On 11/08/2008, at 00:10, Luciano Ramalho wrote:

> De vez em quando a gente precisa remover acentos de uma string,

[...]


> Outro dia num comentário do Python Cookbook eu achei este jeito de
> fazer:
>
> from unicodedata import normalize
> normalize('NFKD', txt.decode(codif)).encode('ASCII','ignore')

Genial, Luciano! Não sabia que o Python tinha esse recurso
embutido! :)

--
Humberto Diógenes
http://humberto.digi.com.br

__._,_.___

__,_._,___
Reply all
Reply to author
Forward
0 new messages