Есть ли модуль Python для прозрачной работы с содержимым файла в качестве буфера?

я работаю над чистым анализатором файлов Python для журналов событий, размер которых может варьироваться от килобайтов до гигабайт. Есть ли модуль, который абстрагирует явный ///.open().seek().read().close() вызывает в простой буферный объект? Вы можете думать об этом как об обратномStringIO, Я ожидаю, что это может выглядеть примерно так:

with FileBackedBuffer('/my/favorite/path', 'rb') as buf:
    header = buf[0:0x10]
    footer = buf[0x10000000:]

mmap модуль может соответствовать моим требованиям; однако у меня есть две оговорки, которые ябуду благодарен за отзывы о:

Важно, чтобы модуль обрабатывал файлы больше, чем доступно в ОЗУ / подкачке. Я не уверен, еслиmmap может сделать это хорошо.mmap Конструкторы разные в зависимости от ОС. Это заставляет меня колебаться, потому что я хочу писать кроссплатформенный код, и не буду вникать в специфику ОС. Я сделаю это, если мне нужно, но это вызвало предупреждение, что я могу искать не в том месте.

Еслиmmap правильный модуль для такой задачи, как он обрабатывает эти две точки? Если это не так, что является подходящим модулем?

Ответы на вопрос(1)

Ваш ответ на вопрос