Подтвердить что ты не робот

Python: чтение строк из сжатых текстовых файлов

Легко ли читать строку из gz-сжатого текстового файла, используя python без полного извлечения файла? У меня есть файл text.gz, который составляет 200 мб. Когда я извлекаю его, он становится 7.4gb. И это не единственный файл, который я должен прочитать. Для всего процесса я должен прочитать 10 файлов. Хотя это будет последовательная работа, я думаю, что это будет разумная вещь, чтобы не делать этого, не раскрывая всю информацию. Я даже не знаю, что это возможно. Как это можно сделать с помощью python? Мне нужно прочитать текстовый файл по строкам.

4b9b3361

Ответ 1

Вы пытались использовать gzip.GzipFile? Аргументы аналогичны open.

Ответ 2

Вы можете использовать стандартный gzip-модуль в python. Просто используйте:

gzip.open('myfile.gz')

чтобы открыть файл как любой другой файл и прочитать его строки.

Дополнительная информация здесь: Python gzip module

Ответ 3

Использование gzip.GzipFile:

import gzip

with gzip.open('input.gz','r') as f:
    for line in f:
        print('got line', line)

Примечание 1: для python3 вам необходимо указать файл, который нужно открыть в 'rt', поскольку 'r' по умолчанию используется для двоичного чтения или иначе использовать line.decode(...).

Примечание 2: gzip.open(filename, mode) является псевдонимом для gzip.GzipFile(filename, mode). Я предпочитаю первый, поскольку он похож на with open(...) as f:, используемый для открытия несжатых файлов.