Bonjour,
Je fais mes premiers pas avec Python et Pyscripter et bute sur un problème d'accents que je ne sais pas résoudre tant les fils Internet sur le sujet sont nombreux et déroutants.
J'ai créé avec Notepad++ un fichier csv, 4 champs séparés par des virgules :
Fichier Notepad au format csv :
XXXXXX,Pierre,1947,août,7
YYYYYYY,Bernadette,1948,novembre,5
XXXXXXYYYYYYYY,Florence,1979,novembre,26
ZZZZZZZ,Andrée,1927,janvier,09
Je le lis pour l'imprimer dans la console Python avec le script ci-dessous :
#Quand ce script est lancé, j'obtiens dans la console :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 import csv fic=open('Fichier-00-csv-1.csv') fic_donnees=csv.reader(fic) nom=[] for ligne in fic_donnees: print(ligne) c1=ligne[0] nom.append(c1) print(nom) wnom='Andrée' print(wnom)
['YYYYYYY', 'Bernadette', '1948', 'novembre', '5']
['XXXXXXYYYYYYYY', 'Florence', '1979', 'novembre', '26']
['ZZZZZZZ', 'Andrée', '1927', 'janvier', '09']
['XXXXXX', 'YYYYYYY', 'XXXXXXYYYYYYYY', 'ZZZZZZZ']
Andrée
>>>
Ce script fonctionne correctement quand j'utilise une variable contenant une lettre accentuée (wnom='Andrée') mais ne reconnaît par l'accent quand il est dans le fichier lu par la méthode .reader sur le 4e enregistrement du fichier .
Ma question : comment faire pour trouver le bon codage du fichier lu et comment le signaler au script Python si c'est nécessaire?
PS : J'ai "vérifié" autant que je peux et l'encoding du fichier .csv est UTF8, pareil pour le fichier crée par Pyscripter.
Merci d'avance pour l'aide apportée.
Je ne suis pas vraiment un "geek" et un peu dérouté par les pistes trouvées sur google pour ce qui concerne les lettres accentuées.
Mon PC tourne sous Windows 10, mis à jour régulièrement, avec Python 3.6 et Notepad++, également mis à jour.
Partager