[PYTHON] Déterminer et traiter automatiquement l'encodage du fichier texte

Pour connaître l'encodage du texte Il semble que vous devriez essayer de décoder à partir d'une extrémité et utiliser celui qui a été décodé avec succès.

python


def conv_encoding(data):
    lookup = ('utf_8', 'euc_jp', 'euc_jis_2004', 'euc_jisx0213',
            'shift_jis', 'shift_jis_2004','shift_jisx0213',
            'iso2022jp', 'iso2022_jp_1', 'iso2022_jp_2', 'iso2022_jp_3',
            'iso2022_jp_ext','latin_1', 'ascii')
    encode = None
    for encoding in lookup:
      try:
        data = data.decode(encoding)
        encode = encoding
        break
      except:
        pass
    if isinstance(data, unicode):
        return data,encode
    else:
        raise LookupError

#Lecture de fichiers et enquête sur l'encodage
fp = open(path,'r')
str,encoding = None,None
try:
  str,encoding = conv_encoding(fp.read())
finally:
  fp.close()

#Modifier le contenu
...<N'importe quel code>


#Ecrire le fichier dans l'encodage d'origine
fp = open(path,'w')
try:
  fp.write(str.encode(encoding))
finally:
  fp.close()

Recommended Posts

Déterminer et traiter automatiquement l'encodage du fichier texte
Le processus d'installation d'Atom et de l'exécution de Python
Obtenez le type MIME en Python et déterminez le format de fichier
Le processus de création et d'amélioration du code Python orienté objet
Traitez le contenu du fichier dans l'ordre avec un script shell
L'histoire de Python et l'histoire de NaN
Traiter le résultat de% time,% timeit
L'histoire du "trou" dans le fichier
Traitez le fichier gzip UNLOADed avec Redshift avec Python de Lambda, gzipez-le à nouveau et téléchargez-le sur S3
Creusez le répertoire et créez une liste de chemins de répertoire + noms de fichiers
[Python scraping] Affiche l'URL et le titre du site contenant un mot-clé spécifique dans un fichier texte
Netmiko détecte automatiquement le type de périphérique réseau et exécute la commande
Ouvrez un fichier Excel en Python et coloriez la carte du Japon
Ceci et celui de la notation d'inclusion.
Implémenter une partie du processus en C ++
Vérifier l'existence du fichier avec python
Revoir le concept et la terminologie de la régression
Vérifiez que la page d'accueil de l'école est automatiquement mise à jour
Générez automatiquement des images de koala et d'ours
L'histoire d'essayer deep3d et de perdre
Définissez le nom du processus du programme Python
[Python] Récupère le code de caractère du fichier
Ajouter des lignes et du texte sur l'image
[Python3] Comprendre les bases des opérations sur les fichiers
Jouons avec Python Receive et enregistrez / affichez le texte du formulaire de saisie
Mémorandum Python: reportez-vous au texte et modifiez le nom du fichier lors de la copie du fichier cible
À propos du comportement de copy, deepcopy et numpy.copy
Résumé des différences entre PHP et Python
Compréhension complète des concepts de Bellmanford et Dyxtra
Télécharger des images à partir d'un fichier texte contenant l'URL
La réponse de "1/2" est différente entre python2 et 3
Organiser la signification des méthodes, des classes et des objets
Spécification de la plage des tableaux ruby et python
Changer la couleur des erreurs et avertissements Fabric
Comparez la vitesse d'ajout et de carte Python
Envoyer Gmail à la fin du processus [Python]
Expérimentons et laissons des preuves pour déterminer les spécifications.
Description générale des notificateurs CPUFreq core et CPUFreq
Convertir le code de caractère du fichier avec Python3
Organisez l'utilisation super basique des Autotools et de pkg-config
J'ai lu et implémenté les variantes de UKR
Déterminez le nombre de classes à l'aide de la formule Starges
Prise en compte des forces et faiblesses de Python
[Python] Déterminez le type d'iris avec SVM
Les parties sympas et regrettables de Cloud Datalab
Macports easy_install résout et exécute automatiquement la version
Obtenez la date de mise à jour du fichier de mémorandum Python.
Lorsqu'un fichier est placé dans le dossier partagé de Raspberry Pi, le processus est exécuté.
[Python] Changer la couleur du texte et la couleur d'arrière-plan d'un mot clé spécifique dans la sortie d'impression
J'ai essayé d'extraire le texte du fichier image en utilisant Tesseract du moteur OCR
Lisez le fichier csv avec le notebook jupyter et écrivez le graphique l'un sur l'autre
Vérifiez le temps de traitement et le nombre d'appels pour chaque processus avec python (cProfile)
Enregistrez le texte de toutes les notes Evernote dans SQLite à l'aide de Beautiful Soup et SQL Alchemy