Сохранение содержимого большого файла .txt в переменную в python - PullRequest
2 голосов
/ 31 марта 2020

У меня есть огромный файл .txt, содержащий около 100 миллионов строк, и я хочу сохранить его содержимое в строку построчно.

Я использую следующий код для достижения этой цели:

tmp=[]
with open('xy.txt') as f:
    for line in f:
        tmp.append(line)

Теперь проблема в том, что этот код не освобождает память до тех пор, пока не будет прочитан весь файл, таким образом, через некоторое время ему не хватает памяти.

Мой вопрос заключается в том, что там Любой способ эффективного выполнения этой задачи памяти?

1 Ответ

2 голосов
/ 31 марта 2020

Вы можете определить генератор, который выдает построчно:

def gen():
    with open('xy.txt') as fh:
        yield from fh

Если вам нужна только определенная c его часть, вы можете использовать itertools.islice для выбора этот кусок:

import itertools as it

data = it.islice(gen(), 10**6, 10**7)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...