Сообщить об ошибке.

Читает сразу весь файл или делит файл на куски

Синтаксис:

file.read([size])

Параметры:

Возвращаемое значение:

Описание:

Метод файла file.read() считывает из файла не более size байтов или символов, в зависимости от режима, в котором открыт файл функцией open(). Если достигается конец файла до получения указанного размера size, тогда метод прочитает только доступные байты или символы.

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

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

Примеры чтения сразу всего файла или кусками.

Чтение сразу всего файла.

При таком подходе, если файл большой, то может не хватить оперативной памяти.

# Подготовим файл
text = 'This is 1st line\nThis is 2nd line\nThis is 3rd line\nThis is 4th line\nThis is 5th line'
with open('foo.txt', 'w') as fp:
    fp.write(text)
    
# 84

with open('foo.txt', 'r') as fp:
    # считываем сразу весь файл
    data = fp.read()
    
for line in data.splitlines():
    print(line)
    
# This is 1st line
# This is 2nd line
# This is 3rd line
# This is 4th line
# This is 5th line

Чтение файла частями/кусками.

with open('foo.txt', 'r') as fp:
    # читаем файл по 20 байт
    chunk = fp.read(20)
    while chunk:
        print(chunk)
        chunk = fp.read(20)
        
# This is 1st line
# Thi
# s is 2nd line
# This i
# s 3rd line
# This is 4
# th line
# This is 5th 
# line