Soyez prudent lorsque vous travaillez avec des fichiers texte compressés au format gzip

Il y avait quelques pièges (personnellement) lors de la lecture d'un fichier texte compressé au gzip, je les ai donc résumés.

Lecture binaire

Le mode de lecture de fichier par défaut est binaire, donc le code ci-dessous lira chaque ligne en binaire.

import gzip

with gzip.open("test.txt.gz", "r") as fi:
    for line in fi:
	print(line)

Pour le lire sous forme de texte, lisez-le en mode "rt" lorsque le fichier est ouvert.

import gzip

with gzip.open("test.txt.gz", "rt") as fi:
    for line in fi:
	print(line)

Ignorer la déclaration d'encodage au début de la phrase

Même si vous spécifiez l'encodage par défaut, il sera ignoré, vous devez donc spécifier à nouveau l'encodage lors de l'ouverture du fichier. En d'autres termes, à la fin, il peut être lu comme un fichier texte avec le code suivant.

import gzip

with gzip.open("test.txt.gz", "rt", "utf_8") as fi:
    for line in fi:
	print(line)

Serpentin

C'est peut-être la même chose avec d'autres fichiers compressés, mais je ne l'ai pas essayé.

Recommended Posts

Soyez prudent lorsque vous travaillez avec des fichiers texte compressés au format gzip
Soyez prudent lorsque vous exécutez CakePHP3 avec PHP7.2
Soyez prudent lors de la lecture de données avec des pandas (spécifiez dtype)
Soyez prudent avec les références de méthodes faciles
Quand le fichier mmap (2) sera-t-il mis à jour? (3)
Quand le fichier mmap (2) sera-t-il mis à jour? (2)
(Note) Soyez prudent avec python argparse
Quand le fichier mmap (2) sera-t-il mis à jour? (1)
[Python] Soyez prudent lorsque vous utilisez print
Soyez prudent avec la méthode append de Python
Faites attention à LANG pour UnicodeEncodeError lors de l'impression du japonais avec Python 3
⚠️ Méfiez-vous des valeurs d'argument par défaut de Python ⚠️
Soyez prudent lorsque vous récupérez des tweets à intervalles réguliers avec l'API Twitter
Soyez prudent lors de l'ajout d'un tableau à un tableau
Faites attention au type lorsque vous créez un masque d'image avec Numpy
Lorsque vous ne pouvez pas dessiner une carte de contour avec APLpy
Enquête lorsque l'importation ne peut pas être effectuée avec python
Encodage de caractères lors du traitement de fichiers en Python 3
BigQuery-Python s'est avéré utile lors de l'utilisation de BigQuery à partir de Python
[android] Lorsque AVD ne peut pas être utilisé avec l'autorisation refusée