Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #4338 > unrolled thread

Encodage caractères.

Started byDominique <dominique.sextant@orange.fr.invalid>
First post2026-06-24 08:01 +0200
Last post2026-06-26 03:11 +0200
Articles 6 — 4 participants

Back to article view | Back to fr.comp.lang.python


Contents

  Encodage caractères. Dominique <dominique.sextant@orange.fr.invalid> - 2026-06-24 08:01 +0200
    Re: Encodage caractères. Damien Wyart <damien.wyart@free.fr> - 2026-06-24 11:03 +0200
    Re: Encodage caractères. yves <yves@free.invalid> - 2026-06-24 13:48 +0000
      Re: Encodage caractères. Dominique <dominique.sextant@orange.fr.invalid> - 2026-06-25 17:43 +0200
        Re: Encodage caractères. yves <yves@free.fr.invalid> - 2026-06-25 20:19 +0200
          Re: Encodage caractères. Dominique <dominique.sextant@orange.fr.invalid> - 2026-06-26 03:11 +0200

#4338 — Encodage caractères.

FromDominique <dominique.sextant@orange.fr.invalid>
Date2026-06-24 08:01 +0200
SubjectEncodage caractères.
Message-ID<111frs7$2plfv$1@dont-email.me>
Bonjour,

J'ai écrit, à titre professionnel, un script Python assez simple qui se 
contente de modifier deux fichiers csv.

Je rencontre un problème qui me semble aléatoire d'encodage des fichiers 
csv. Parfois c'est de l'utf-8, parfois c'est de l'ISO 8859-15, parfois 
c'est du latin1. Bref, je tâtonne et je perds du temps.

Existe-t-il une solution pour identifier exactement l'encodage d'un 
fichier csv et l'ouvrir avec le bon 'encoding' ?

Merci et belle journée à tous,

-- 
Dominique
Esto quod es

[toc] | [next] | [standalone]


#4339

FromDamien Wyart <damien.wyart@free.fr>
Date2026-06-24 11:03 +0200
Message-ID<6a3b9d6c$0$7093$426a74cc@news.free.fr>
In reply to#4338
Bonjour,

* Dominique <dominique.sextant@orange.fr.invalid> in fr.comp.lang.python:
> Je rencontre un problème qui me semble aléatoire d'encodage des
> fichiers csv. Parfois c'est de l'utf-8, parfois c'est de l'ISO
> 8859-15, parfois c'est du latin1. Bref, je tâtonne et je perds du
> temps.

> Existe-t-il une solution pour identifier exactement l'encodage d'un fichier csv
> et l'ouvrir avec le bon 'encoding' ?

Une approche naïve si la liste des encodages est courte consiste à utiliser
try/except ; simple mais pas vraiment élégant.

Sinon il y a des bibliothèques de détection mais bien sûr elles ne peuvent pas
être fiables à 100% (elle travaillent sur un échantillon du fichier et il n'y
a pas forcément unicité). La plus connue est chardet (on en a pas mal parlé dans
le monde open source récemment car elle a été réécrite entièrement et cela a posé
des questions de licences) :
https://chardet.readthedocs.io/en/latest/usage.html
https://github.com/chardet/chardet
https://lwn.net/Articles/1061534/

La façon précise de relier chardet à la partie CSV dépendra de la façon de traiter
le format : traitement direct sur les chaînes, utilisation du module csv standard,
utilisation de Pandas...

-- 
DW

[toc] | [prev] | [next] | [standalone]


#4340

Fromyves <yves@free.invalid>
Date2026-06-24 13:48 +0000
Message-ID<6a3be014$0$10315$426a74cc@news.free.fr>
In reply to#4338
Le Wed, 24 Jun 2026 08:01:43 +0200, Dominique a écrit:

Bonjour,

> J'ai écrit, à titre professionnel, un script Python assez simple qui se
> contente de modifier deux fichiers csv.

Sans répondre directement à la question, est-ce que tu peux avoir un 
contrôle sur ces deux fichiers csv, sur la façon dont ils sont produits ?

Ou une possibilité de feedback ?

Ou pas du tout ?

@+
-- 
Yves

[toc] | [prev] | [next] | [standalone]


#4341

FromDominique <dominique.sextant@orange.fr.invalid>
Date2026-06-25 17:43 +0200
Message-ID<111jiam$3shng$1@dont-email.me>
In reply to#4340
Le 24/06/2026 à 15:48, yves a écrit :
> Le Wed, 24 Jun 2026 08:01:43 +0200, Dominique a écrit:
> 
> Bonjour,
> 
>> J'ai écrit, à titre professionnel, un script Python assez simple qui se
>> contente de modifier deux fichiers csv.
> 
> Sans répondre directement à la question, est-ce que tu peux avoir un
> contrôle sur ces deux fichiers csv, sur la façon dont ils sont produits ?
> 
> Ou une possibilité de feedback ?
> 
> Ou pas du tout ?
> 
> @+

En fait, j'ai utilisé bêtement, en ligne de commande, file -i 
/mon/fichier.csv

Avec l'encodage ainsi trouvé je l'ouvre sans problème. Je décide 
moi-même de l'encodage de sortie (pourquoi ai-je retenu ISO-8859-15 ? Je 
ne sais pas, mais comme tout fonctionne 😊)

with open("/HOME/residents.csv", "r",encoding='ISO-8859-15') as res:

Je vous remercie tous les deux pour vos conseils toujours avisés et 
éclairants. Belle fin de journée à vous deux,

-- 
Dominique
Esto quod es

[toc] | [prev] | [next] | [standalone]


#4342

Fromyves <yves@free.fr.invalid>
Date2026-06-25 20:19 +0200
Message-ID<871pdu5vq9.fsf@free.fr.invalid>
In reply to#4341
Dominique <dominique.sextant@orange.fr.invalid> writes:

>> 
>>> J'ai écrit, à titre professionnel, un script Python assez simple qui se
>>> contente de modifier deux fichiers csv.
>> Sans répondre directement à la question, est-ce que tu peux avoir un
>> contrôle sur ces deux fichiers csv, sur la façon dont ils sont produits ?
>> Ou une possibilité de feedback ?
>> Ou pas du tout ?

> En fait, j'ai utilisé bêtement, en ligne de commande, file -i
> /mon/fichier.csv

> Avec l'encodage ainsi trouvé je l'ouvre sans problème. Je décide
> moi-même de l'encodage de sortie (pourquoi ai-je retenu ISO-8859-15 ?
> Je ne sais pas, mais comme tout fonctionne 😊)
>
> with open("/HOME/residents.csv", "r",encoding='ISO-8859-15') as res:

Je posais la question de l'origine des fichiers csv, car ce que j'ai
retenu de ce texte du début des années 2000 :

<https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/>

(il y avait  une traduction française qui semble désormais introuvable)

c'est qu'il est impossible de deviner un encodage de façon 100 %
certaine, et donc qu'il est préférable que l'encodage soit annoncé.

Pour un fichier csv, c'est difficile, mais si ces fichiers sont produits
par un programme interne à l'entreprise (une base de donnée, par
exemple), il a peut-être moyen de garantir une sortie avec un encodage
spécifique, à la source, plutôt que de tenter un test dont la fiabilité
ne peut pas être absolue.

-- 
Yves

[toc] | [prev] | [next] | [standalone]


#4343

FromDominique <dominique.sextant@orange.fr.invalid>
Date2026-06-26 03:11 +0200
Message-ID<111kjj6$6iat$1@dont-email.me>
In reply to#4342
Le 25/06/2026 à 20:19, yves a écrit :

> Pour un fichier csv, c'est difficile, mais si ces fichiers sont produits
> par un programme interne à l'entreprise (une base de donnée, par
> exemple), il a peut-être moyen de garantir une sortie avec un encodage
> spécifique, à la source, plutôt que de tenter un test dont la fiabilité
> ne peut pas être absolue.
> 

Je partage totalement ton analyse, et je milite pour que l'éditeur d'un 
logiciel que nous utilisons à titre professionnel modifie ses scripts 
afin de ne sortir que des extractions csv en utf-8.

J'ai connu cette situation à la DGFIP avec des extractions soit en 
ISO-8859-15 soit en utf-8. Il a suffi de très peu de temps pour que 
toutes les extractions soient en utf-8.

À mon niveau et avec LibreOffice ou Python, je déclare toujours 
l'encodage avant d'écrire mon fichier csv sur disque.

Belle journée,

-- 
Dominique
Esto quod es

[toc] | [prev] | [standalone]


Back to top | Article view | fr.comp.lang.python


csiph-web