Python: регулярное выражение для большого файла. Простой способ? - PullRequest
1 голос
/ 06 апреля 2011

Мне нужно выполнить сопоставление регулярного выражения для файла, но я столкнулся с неожиданной проблемой: файл слишком велик для read() или mmap() за один вызов, объекты File не поддерживают buffer() интерфейс, и модуль регулярных выражений принимает только строки или буферы.

Есть ли простой способ сделать это?

1 Ответ

5 голосов
/ 06 апреля 2011

Модуль Python mmap обеспечивает приятный для Python способ отображения памяти в файле. В 32-разрядной операционной системе максимальный размер файла будет ограничен не более, чем ГБ или, может быть, двумя, но в 64-разрядной ОС вы сможете отобразить в памяти файл произвольного размера (до хранения размеры превышают 2 64 , конечно).

Я сделал это с файлами до 30 ГБ (файл дампов Wikipedia XML) в Python с отличными результатами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...