Чтение файла байт за байтом без превышения лимита памяти

#python #file #byte

#python #файл #байт

Вопрос:

Я хотел бы прочитать очень большой файл (100 ГБ) на Python. Если я использую только

 with open("test.test", 'rb') as f:
     data = f.read()
  

Это приведет MemoryError к. Мне пришла в голову идея читать этот файл байт за байтом. Я пытался

 with open("test.txt", 'rb') as f:
    data = f.read(1)
  

И все было идеально; был прочитан только один байт. Проблема возникает при чтении следующих байтов. Если я заменю аргумент 1 на 2 вывод, это будет 2 байта, а не секундный байт. Я мог бы использовать функцию разделения, но в этой конкретной функции мне нужно не превышать лимит памяти. Есть ли какой-нибудь способ читать файл байт за байтом? Или есть какое-либо решение?

Комментарии:

1. Если вы вызовете read(1) снова, вы получите следующий байт.

Ответ №1:

Вы можете сделать это с помощью поиска. Просто увеличьте смещение по своему усмотрению.