Ouvrez UTF-8 avec BOM en Python

Premier de la conclusion

Encoder lors de la lecture avec UTF-8 BOM en Python

Spécifiez ** 'utf_8_sig' **.

Exemple de lecture d'un fichier io.opne(filename, "r", encoding="utf_8_sig")

Convertir du type str (UTF-8) au type unicode uni_string = unicode(str_string, 'utf_8_sig')

Introduction au grattage

J'étais un peu accro à la lecture de UTF-8 en Python, je vais donc l'écrire pour éviter de l'oublier.

Qu'est-ce que BOM

UTF-8 peut avoir une nomenclature (marque d'ordre d'octet). Il s'agit d'un identifiant que le codage est UTF-8. Les 3 premiers octets du fichier sont «EF BB BF».

Le problème est qu'il existe UTF-8 avec BOM et UTF-8 sans BOM.

La nomenclature est ajoutée à UTF-8 dans Windows'Notepad 'et Excel. Linux et Mac semblent essentiellement gérer UTF-8 sans BOM.

Gérer les fichiers avec la nomenclature UTF-8 en Python

Cette fois, je voulais charger le csv édité dans Excel, j'ai donc dû considérer BOM.

J'ai pensé, je l'ai écrit dans le document.

Document officiel UTF-8 avec marque BOM

Si vous définissez le code d'encodage sur "utf_8_sig", S'il existe une nomenclature, elle sera ignorée et lue. S'il n'y a pas de nomenclature, il peut être lu comme UTF-8 tel quel.

Exemple de programme

ImportCSV.py



import io

with io.open('sample.csv', 'rt', encoding='utf_8_sig') as f:
    print(f.readlines())

finalement

Les codes de caractères ont tendance à créer une dépendance en Python, mais si vous pouvez gérer correctement les codes de caractères lors de la conversion en type unicode, vous n'aurez pas à vous soucier des codes de caractères.

Recommended Posts

Ouvrez UTF-8 avec BOM en Python
Traitement de texte UTF8 avec python
Grattage au sélénium en Python
Exploitez LibreOffice avec Python
Débogage avec pdb en Python
Gérer les sons en Python
Grattage avec du sélénium en Python
Grattage avec Tor en Python
Tweet avec image en Python
Combiné avec ordinal en Python
Reconnaissance des nombres dans les images avec Python
Tester avec des nombres aléatoires en Python
GOTO en Python avec Sublime Text 3
Travailler avec LibreOffice en Python: import
Scraping avec Selenium en Python (Basic)
Analyse CSS avec cssutils en Python
Numer0n avec des objets fabriqués avec Python
Utiliser rospy avec virtualenv dans Python3
Utiliser Python mis en pyenv avec NeoVim
Heatmap avec dendrogramme en Python + matplotlib
Méthode Hash (méthode d'adresse ouverte) en Python
Lire des fichiers en parallèle avec Python
Générer un mot de passe pour le manuel avec python
Utiliser OpenCV avec Python 3 dans Window
Jusqu'à traiter de python dans Atom
Démarrez avec Python avec Blender
Travailler avec des images DICOM en Python
Écrire de la documentation dans Sphinx avec Python Livereload
Obtenez des données supplémentaires vers LDAP avec python
Livre en spirale en Python! Python avec un livre en spirale! (Chapitre 14 ~)
Essayez de vous connecter à qiita avec Python
Test de stress avec Locust écrit en Python
Python3> dans le mot clé> Vrai avec une correspondance partielle?
Obtenez des taux de change à partir des taux de change ouverts en Python
Contrôle exclusif avec fichier de verrouillage en Python
Surveillance des appareils effectuée par Python On-box de IOS-XE
Essayez de travailler avec des données binaires en Python
Dessinez Nozomi Sasaki dans Excel avec python
Conseils pour gérer les binaires en Python
Afficher Python 3 dans le navigateur avec MAMP
Comment utiliser BigQuery en Python
Classe Trump en Python (avec comparaison)
Gérer les "années et mois" en Python
Traiter plusieurs listes avec for en Python
Remplacer non-ASCII par des expressions régulières en Python
Un serveur Web de ligne (avec CGI) en python
Commençons avec TopCoder en Python (version 2020)
Traitez facilement des images en Python avec Pillow
Pour faire fonctionner la station d'horodatage en Python
Appelez APIGateWay avec APIKey dans les requêtes python
Lire des caractères dans des images avec Python OCR
Introduction de sip-4.14 dans l'environnement python3.2.2 avec MacOS 10.7.4
Python en optimisation
CURL en Python
FizzBuzz en Python3
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python