[PYTHON] Seien Sie vorsichtig, wenn Sie mit gzip-komprimierten Textdateien arbeiten

Es gab einige (persönliche) Fallstricke beim Lesen einer gzip-komprimierten Textdatei, daher habe ich sie zusammengefasst.

Binäres Lesen

Der Standard-Lesemodus für Dateien ist binär, daher liest der folgende Code jede Zeile binär.

import gzip

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

Um es als Text zu lesen, lesen Sie es beim Öffnen der Datei im RT-Modus.

import gzip

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

Ignorieren Sie die Kodierungsdeklaration am Satzanfang

Selbst wenn Sie die Codierung standardmäßig angeben, wird sie ignoriert, sodass Sie die Codierung beim Öffnen der Datei erneut angeben müssen. Mit anderen Worten, am Ende kann es als Textdatei mit dem folgenden Code gelesen werden.

import gzip

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

Serpentin

Vielleicht ist es das gleiche mit anderen komprimierten Dateien, aber ich habe es nicht versucht.

Recommended Posts

Seien Sie vorsichtig, wenn Sie mit gzip-komprimierten Textdateien arbeiten
Seien Sie vorsichtig, wenn Sie CakePHP3 mit PHP7.2 ausführen
Seien Sie vorsichtig beim Lesen von Daten mit Pandas (geben Sie dtype an)
Seien Sie vorsichtig mit einfachen Methodenreferenzen
Wann wird die mmap (2) -Datei aktualisiert? (3)
Wann wird die mmap (2) -Datei aktualisiert? (2)
(Hinweis) Seien Sie vorsichtig mit Python Argparse
Wann wird die mmap (2) -Datei aktualisiert? (1)
[Python] Seien Sie vorsichtig, wenn Sie Druck verwenden
Seien Sie vorsichtig mit Pythons Append-Methode
Achten Sie beim Drucken von Japanisch mit Python 3 auf LANG für UnicodeEncodeError
⚠️ Achten Sie auf die Standardargumentwerte von Python ⚠️
Seien Sie vorsichtig, wenn Sie in regelmäßigen Abständen Tweets mit der Twitter-API abrufen
Seien Sie vorsichtig, wenn Sie einem Array ein Array hinzufügen
Achten Sie beim Erstellen einer Bildmaske mit Numpy auf den Typ
Wenn Sie mit APLpy keine Konturkarte zeichnen können
Untersuchung beim Import kann nicht mit Python durchgeführt werden
Zeichenkodierung beim Umgang mit Dateien in Python 3
BigQuery-Python war nützlich, wenn Sie mit BigQuery aus Python arbeiten
[android] Wenn AVD nicht mit verweigerter Berechtigung verwendet werden kann