Найти - Пользователи
Полная версия: Поиск по шаблону в очень большом файле
Начало » Python для экспертов » Поиск по шаблону в очень большом файле
1 2 3
py.user.next
Master_Sergius
И в данном случае, надо убедиться, что в первой колонке - формат даты соответсвует нуждам
нужно сделать генератор первых полей и пропустить их через генератор совпадений с регулярным выражением в all()

Master_Sergius
Вот здесь надо убедиться, что скрипт с такими-то опциями прошел успешно.
нужно сделать генератор строк и пропустить их через конечный автомат, в котором в разных состояниях разные регулярные выражения

Master_Sergius
Поковырялся с mmap - в общем почти то, что нужно.
mmap загружает всё в оперативную память, а та начинает свопиться, когда её не хватает - это всё медленно и затратно
Master_Sergius
py.user.next
нужно сделать генератор строк и пропустить их через конечный автомат, в котором в разных состояниях разные регулярные выражения
Вот с этого места поподробней )

py.user.next
mmap загружает всё в оперативную память, а та начинает свопиться, когда её не хватает - это всё медленно и затратно
Файл на 1,3 гб прочесал за 22 секунды, полностью (для проверки сделал регулярку, где нет совпадений)
image
Master_Sergius
Вы писали, что изначально реализация все складывала в одну строчку и совпадения искал grep и это работало. Видимо я что-то недопонял.. Почему нельзя сейчас проделать тоже самое только вместо grep использовать findstr?
Master_Sergius
Image
Фокус в том, что теперь нужные куски могут располагаться в несколько строчек. Просмотрите всё общение по этому вопросу )
py.user.next
Master_Sergius
Файл на 1,3 гб прочесал за 22 секунды, полностью (для проверки сделал регулярку, где нет совпадений)
открыл и прочитал файл через mmap() - всё свопится, как и предполагалось

Master_Sergius
Вот с этого места поподробней )
wiki. пример конечного автомата
Master_Sergius
И всё-таки она вертится!

В общем, Я ещё потестил на некоторых тачках, а также в виртуалках. Оказалось, что тот креш на фришке 7.3 с пайтоном 2.6.4, он только на той тачке и появляется. Пока причин не удалось установить, но повсюду он работает. Даже на такой же другой тачке (железо тоже приблизительно такое же). Короче говоря, mmap - решение данного вопроса. Можно тему закрывать, но не знаю как )
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