2016-12-20 Deviner l’encoding d’un fichier

Lire un fichier avec pandas est parfois compliqué voire très frustrant parce que chaque source à sa propre façon de faire. Bref comment devenir l”encoding d’un fichier texte.

import pandas
df = pandas.read_csv("machin_tres_chiant.csv",
                     sep="\t",
                     encoding="UTF-16LE")

Plutôt que de devenir fou, le plus simple est d’utiliser un module comme chardet qui retourne cette information avec l’exemple suivant :

import chardet
with open("machin_tres_chiant.csv", "rb") as f:
    raw = f.read()
enc = chardet.detect(raw)
print(enc)