Forum >> Principianti >> eliminare gli accenti in una stringa

Pagina: 1

ciao a tutti,ho appena iniziato a programmare in python, so già come rendere maiuscola una stringa con .upper
o minuscola con .lower, ora avrei bisogno di eliminare qualsiasi tipo di accento,mi spiego meglio:




variabile1=open("c:/file", "r") 
variabile2=variabile1.read()
variabile2=variabile2.*()
al posto di * cosa dovrei mettere per eliminare gli accenti? grazie in anticipo
Ciao caro, ricordo ci fosse unidecode una volta, ma non so se ha ancora mercato. ;)

Comunque per la sostituzione dei caratteri in una stringa, hai diversi oggetti a tua disposizione come .replace() per non parlare delle sempreverdi regex.

Ma puoi trovare anche altri modi, libera la fantasia.

Fammi sapere come risolvi.

Cya
Ciao,ho risolto,grazie comunque
Ciao,ho risolto,grazie comunque
Se hai voglia condividi con tutti come hai risolto, magari qualcuno potrebbe avere la tua stessa esigenza.

Ciao e grazie.
Pensavo di avere risolto,invece ho avuto un altro problema, ho creato una funzione che sostituisse gli accenti
def accentirimossi(v):
    v=v.replace(“à”,”a”)
    v=v.replace(“è”,”è”) #Etc  
Ovviamente non ha funzionato.informandomi ho capito che dovevo aggiungere return:

def accentirimossi(v):
    return v.replace(“à”,”a”) 
   return v.replace(“è”,”è”) etc.....
Frase=(accentirimossi(frase))


Ma facendo ció sorge un altro problema:vengono sostituiti sono i caratteri specificati dopo il primo return,quindi in questo caso à diventa a invece è resta è ;come potrei fare?
Pensavo di avere risolto,invece ho avuto un altro problema, ho creato una funzione che sostituisse gli accenti
def accentirimossi(v):
    v=v.replace(“à”,”a”)
    v=v.replace(“è”,”è”) #Etc  
Ovviamente non ha funzionato.informandomi ho capito che dovevo aggiungere return:

def accentirimossi(v):
    return v.replace(“à”,”a”) 
   return v.replace(“è”,”è”) etc.....
Frase=(accentirimossi(frase))


Ma facendo ció sorge un altro problema:vengono sostituiti sono i caratteri specificati dopo il primo return,quindi in questo caso à diventa a invece è resta è ;come potrei fare?
io uso questo Codice Magico™

>>> frase = 'fràsé còñ möltì äççèntï'
>>> from unicodedata import category, normalize
>>> Frase = ''.join(c for c in normalize('NFD', frase) if category(c) != 'Mn')
>>> Frase
'frase con molti accenti'


THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Mentre ti stavo scrivendo il messaggio, ti ha risposto cm con una cosa simile, anche se la sua è più raffinata.

Ci tengo però a sottolineare come una funzione di fatto termina quando incontra l'istruzione return e quindi tutto quello scritto successivamente verrà ignorato.

Cya


Pagina: 1



Esegui il login per scrivere una risposta.