Bonjour !
J’écris un programme qui enlève l’accentuation d’un texte donné en paramètre.
J’ai suivi ce mini-tuto pour Python 3, mais le résultat n’est pas conforme, probablement à cause de l’encodage.
Les fichiers utilisés par le programme sont encodés en UTF-8 selon l’éditeur Notepad++.
De ce que j’ai lu dans la documentation, je devrais lire toute cette page pour comprendre d’où vient le problème.
Je pense qu’il doit y avoir une explication beaucoup plus simple, auriez-vous des idées ?
C’est sûrement une bête erreur dans mon code.
Code et exemple d’entrée/sortie :
Entrée :
J'aime le pain d'épices.
Sortie attendue :
J'aime le pain d'epices.
Sortie actuelle :
J'aime le pain d'a©pices.
Code source
# coding: utf-8
import os
from unicodedata import normalize, category
# 1. Ouverture du fichier en lecture seule
file = open('test-in.txt')
data = file.read()
file.close()
# 2. On enlève les accents
data = ''.join((c for c in normalize('NFD', data.lower()) if category(c) != 'Mn'))
# 3. On affiche le résultat et on l'enregistre
print(data)
file = open('test-out.txt', 'w')
file.write(data)
file.close()
os.system("pause")
+0
-0