Quotidien Shaarli

Tous les liens d'un jour sur une page.

August 25, 2022

Python-Django utf-8 csv.writer

Pour écrire un fichier CSV avec Python (et le framework web Django), petite astuce pour que ce fichier soit ouvert en UTF-8 avec Excel : placer dans le fichier un BOM (byte order mark).

Par exemple :

response.write(u'\ufeff'.encode('utf8'))
writer = csv.writer(response)
writer.writerow(['First row', 'Foo', 'Bar', 'Baz'])

Autre particularité de Windows/Excel : le délimiteur change avec la localisation. Virgule pour la langue anglaise, point-virgule pour la langue française (cf https://shelter.moe/@Rubybyn/108882491312566964)