← retour aux snippets

csv.Sniffer: détecter le délimiteur

Deviner le dialecte d'un CSV (séparateur, quotechar) de façon robuste.

python data #csv#sniffer#dialect

objectif

Deviner le dialecte d’un CSV (séparateur, quotechar) de façon robuste.

code minimal

import csv
sample = "a;b;c\n1;2;3\n"
dialect = csv.Sniffer().sniff(sample)
print(dialect.delimiter == ";")  # attendu: True

utilisation

import csv, io
s = io.StringIO("a,b\n1,2\n")
d = csv.Sniffer().sniff(s.read(1024))
print(d.delimiter == ",")

variante(s) utile(s)

import csv
print(csv.Sniffer().has_header("col1;col2\n1;2\n") is True)

notes

  • Fournissez un échantillon significatif (quelques lignes) à sniff().
  • has_header heuristique; vérifiez vos colonnes si critique.