Comment faire pour convertir un fichier au format utf-8 en Python?
J'ai besoin de convertir un ensemble de fichiers en utf-8 en Python, et j'ai du mal avec la "conversion du fichier" partie.
J'aimerais faire l'équivalent de:
iconv -t utf-8 $file > converted/$file # this is shell code
Merci!
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le codecs module, comme ceci:
MODIFIER: ajout
BLOCKSIZE
paramètre du fichier de contrôle de taille de bloc.Cela a fonctionné pour moi dans un petit test:
target = open("target", "wb")
sont là quelques uns des autres changements?Merci pour les réponses, ça marche!!!
Et depuis les fichiers source sont dans des formats mixtes, j'ai ajouté une liste de formats de source à être jugé en séquence (
sourceFormats
), et surUnicodeDecodeError
j'ai essayer le prochain format:(MODIFIER par Rudro Badhon: il intègre l'original essayez de multiples formats jusqu'à ce que vous n'obtenez pas une exception ainsi qu'une autre approche qui utilise le chardet.universaldetector)
file
. D'où cela vient?De deviner quelle est la source de l'encodage, vous pouvez utiliser le
file
*nix commande.Exemple:
C'est un Python3 fonction pour convertir n'importe quel fichier texte dans l'une avec l'encodage UTF-8. (sans l'aide des paquets inutiles)
Vous pouvez l'utiliser facilement dans une boucle de convertir une liste de fichiers.
Réponse pour source inconnue type de codage
basé sur @Sébastien RoccaSerra
python3.6
C'est ma force brute de la méthode. Il prend également soin de mêlée \n et \r\n dans l'entrée.