Читает ли python csv.reader весь файл в память?

1

Объект csvreader считывает весь файл в память? Если у меня будут большие данные, это будет сбой из-за низкой памяти. Или это только указатель, чтобы я мог обрабатывать каждую строку?

import csv
with open('RawData.csv','r') as file:
    csvreader = csv.reader(file, delimiter=',')
    for row in csvreader:
        print(row)
Теги:
csv

1 ответ

1

Из документации csv.reader:

Верните объект-читатель, который будет перебирать строки в данном csvfile. csvfile может быть любым объектом, который поддерживает протокол итератора и возвращает строку каждый раз, когда __next__() его __next__() - объекты файлов и объекты списка подходят.

(Акцент мой.)

У вас есть обертка вокруг объекта файла. Указатель файла выполняет всю грязную работу по эффективному итерации по строкам вашего файла, а модуль чтения csv анализирует эти строки по мере их чтения.

Так что да, +1 для удобства и эффективности.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню