Je lis l'artiste d'une chanson à partir de son étiquette MP3, puis crée un dossier basé sur ce nom. Le problème que j'ai est quand le nom contient un caractère spécial comme 'AC \ DC'. J'ai donc écrit ce code pour y faire face.python: Remplacer des caractères spéciaux dans une chaîne
def replace_all(text):
print "replace_all"
dictionary = {'\\':"", '?':"", '/':"", '...':"", ':':"", chr(148):"o"}
for i, j in dictionary.iteritems():
text = text.replace(i,j)
return text
Ce que je suis en cours d'exécution en est maintenant la façon de traiter avec des caractères non anglais comme un umlaout o dans le culte Oyster Motorhead ou bleu.
Comme vous le voyez, j'ai essayé d'ajouter la version ascii-chaîne de umlaout o à la fin du dictionnaire, mais qui a échoué avec
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 4: ordinal not in range(128)
http://farmdev.com/talks/unicode/ –
Voir aussi http://stackoverflow.com/questions/3833791/python-regex-to-convert-non-ascii-characters-in-a-string- au-proche-ascii-équivalent pour la discussion d'une solution plus générale. – Mikel
@Ignacio C'est un super lien! Cela a beaucoup aidé. – ccwhite1