Je traite de problèmes dans quelques fichiers sur le codage. Nous recevons des fichiers d'une autre société et devons les lire (les fichiers sont au format CSV)
étrangement, les fichiers semblent être codés dans UTF-16. Je réussis à faire cela, mais je dois les ouvrir à l'aide du module code> codecs code> et spécifiant le codage, de cette façon. P> mais, juste Comme je suis capable d'obtenir le dialecte de manière plus agnostique, je pense que ce sera génial d'avoir un moyen d'ouvrir automatiquement les fichiers avec son codage approprié, au moins tous les fichiers texte. Il existe d'autres programmes, comme Vim qui atteint cela. P> Quelqu'un sait une façon de le faire dans Python 2.6? P>
4 Réponses :
Chardet peut vous aider. P>
CoDage de caractères de détection automatique dans Python 2 et 3. Aussi intelligent que votre navigateur. Open Source. P> blockQuote>
Si cela sera fixé dans Python 3, il devrait également être corrigé en utilisant
from __future__ import unicode_literals
Apparemment, cela signifie seulement que vos chaînes sont unicode, non pas que vous pouvez télécharger unicode directement à partir d'un fichier ... aussi c'est utf-8
Ce ne sera pas "corrigé" dans Python 3, car ce n'est pas un problème fixable. De nombreux documents sont valables dans plusieurs codages, le seul moyen de déterminer le codage approprié consiste à connaître quelque chose sur le document. Heureusement, dans la plupart des cas, nous connaissons quelque chose sur le document, comme par exemple, la plupart des personnages seront regroupés en blocs Unicode distincts. Un document en anglais contiendra principalement des caractères dans les 128 premiers points de code. Un document en russe contiendra principalement des points de codes cyrilliques. La plupart des documents contiendront des espaces et des nouvelles lignes. Ces indices peuvent être utilisés pour vous aider à faire des suppositions éduquées sur les codages utilisés. Mieux encore, utilisez une bibliothèque écrite par quelqu'un qui a déjà fait le travail. (Comme Chardet code>, mentionné dans une autre réponse de Desintège . P>
CSV.Reader ne peut pas gérer les chaînes UNICODE dans 2.x. Voir le bas de la Documentation CSV et Cette question pour les moyens de le gérer. p>
Python 3 ne résout pas cela; Tout ce qu'il fait, c'est ajouter
codage code> eterreurs code> arguments surouvert () code>.