Найти - Пользователи
Полная версия: поиск в файле
Начало » Python для новичков » поиск в файле
1
grAn2an
доброго времени суток

нужна помощь в решении следующей задачи:

есть файл довольно большого размера, например 5 гигабайт,
файл бинарный, по сути содержит внутри кучу других файлов, разделенных определенной “меткой”, например “FILE”,
собственно вопрос как его порезать по этим “меткам”?

как я понимаю считать его в строку и провести поиск рег.выр. не самая лучшая идея, учитывая размер…
считывать по-байтно и строить поиск самому(как я понимаю нечто вроде конечных автоматов) вроде как вариант, но может есть более простые или стандартные пути решения?
Lexander
Судя по всему, внутренние файлы - разного размера. И бинарный контейнер - не упорядочен. Поэтому стандартные методы не будут иметь смысла, обычно заключенного в повышении скорости обработки.
Поэтому работать таки придется побайтно. Единственное, что могу посоветовать в этом случае - работать не с символами, а с кодами символов - будет немного быстрее (нет потери времени на преобразование). Но я не в курсе, есть ли библиотеки, которые позволяют работать на таком низком уровне.

Но я бы сначала все таки проверил, может быть, бинарный файл имеет четкую структуру (а не поток с единственными метками - начало блока). Тогда нужно обрабатывать файл в соответствии с этой структурой.
grAn2an
к сожалению описание четкой структуры неизвестно,
известна лишь часть структуры, метки начала и конца файла (засада в том что между метками конца и начала следующего файла как раз неизвестные структуры) но то что известно - достаточно для поиска и извлечения…
но опять же такого размера файлы - страшно прикасаться :(
Lexander
Бинарный файл от какой-то известной программы? Если так, попытайся найти его формат в сети.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB