Je suis face à quelques problèmes dans quelques fichiers sur l'encodage. Nous recevons des fichiers d'autres sociétés et devons les lire (les fichiers sont au format csv)Ouvrir un fichier dans l'encodage approprié automatiquement
Etrangement, les fichiers semblent être codés en UTF-16. Je parviens à le faire, mais je dois les ouvrir en utilisant le module codecs
et en spécifiant l'encodage, de cette façon.
ENCODING = 'utf-16'
with codecs.open(test_file, encoding=ENCODING) as csv_file:
# Autodetect dialect
dialect = csv.Sniffer().sniff(descriptor.read(1024))
descriptor.seek(0)
input_file = csv.reader(descriptor, dialect=dialect)
for line in input_file:
do_funny_things()
Mais, comme je suis en mesure d'obtenir le dialecte d'une manière plus agnostique, je suis pensant que ce sera génial d'avoir un moyen d'ouvrir automatiquement les fichiers avec son encodage approprié, au moins tous les fichiers texte Il existe d'autres programmes, comme Vim, qui permettent d'atteindre cet objectif.
Quelqu'un sait-il comment faire ça en python 2.6?
PD: J'espère que cela sera résolu en Python 3, comme toutes les chaînes sont Unicode ...
Python 3 ne résout pas ceci, tout ce qu'il fait est d'ajouter les arguments 'encoding' et' errors' à 'open()'. –