ошибка памяти при чтении в большом входном файле в python [дубликат]

Другой общий случай, когда можно получить это исключение, включает в себя насмешливые классы во время модульного тестирования. Независимо от используемой насмешливой структуры, вы должны убедиться, что все соответствующие уровни иерархии классов должным образом высмеиваются. В частности, все свойства HttpContext, на которые ссылается тестируемый код, должны быть изделены.

См. « Исключение NullReferenceException при проверке пользовательского AuthorizationAttribute » для несколько подробного примера.

3
задан Charlie Epps 7 March 2010 в 13:45
поделиться

2 ответа

Очевидно, что файл слишком велик, чтобы его можно было сразу считывать в память.

Почему бы просто не использовать:

with open("data.txt") as myfile:
    for line in myfile:
        do_something(line.rstrip("\n"))

или, если вы не используете Python 2.6 и выше:

myfile = open("data.txt")
for line in myfile:
    do_something(line.rstrip("\n"))

В обоих случаях вы получите итератор, который можно обрабатывать так же, как список строк.

EDIT: Поскольку ваш способ чтения всего файл в одну большую строку, а затем разделив его на строки новой строки, удалите новые строки в этом процессе, я добавил .rstrip("\n") к моим примерам, чтобы лучше имитировать результат.

15
ответ дан Tim Pietzcker 26 August 2018 в 04:37
поделиться

используйте этот код для чтения файла по строкам:

for line in open('data.txt'):
    # work with line
2
ответ дан SilentGhost 26 August 2018 в 04:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: