Форум сайта python.su
Master_Sergiusнужно сделать генератор первых полей и пропустить их через генератор совпадений с регулярным выражением в all()
И в данном случае, надо убедиться, что в первой колонке - формат даты соответсвует нуждам
Master_Sergiusнужно сделать генератор строк и пропустить их через конечный автомат, в котором в разных состояниях разные регулярные выражения
Вот здесь надо убедиться, что скрипт с такими-то опциями прошел успешно.
Master_Sergiusmmap загружает всё в оперативную память, а та начинает свопиться, когда её не хватает - это всё медленно и затратно
Поковырялся с mmap - в общем почти то, что нужно.
Офлайн
py.user.nextВот с этого места поподробней )
нужно сделать генератор строк и пропустить их через конечный автомат, в котором в разных состояниях разные регулярные выражения
py.user.nextФайл на 1,3 гб прочесал за 22 секунды, полностью (для проверки сделал регулярку, где нет совпадений)
mmap загружает всё в оперативную память, а та начинает свопиться, когда её не хватает - это всё медленно и затратно
Офлайн
Master_Sergius
Вы писали, что изначально реализация все складывала в одну строчку и совпадения искал grep и это работало. Видимо я что-то недопонял.. Почему нельзя сейчас проделать тоже самое только вместо grep использовать findstr?
Офлайн
Image
Фокус в том, что теперь нужные куски могут располагаться в несколько строчек. Просмотрите всё общение по этому вопросу )
Офлайн
Master_Sergiusоткрыл и прочитал файл через mmap() - всё свопится, как и предполагалось
Файл на 1,3 гб прочесал за 22 секунды, полностью (для проверки сделал регулярку, где нет совпадений)
Master_Sergiuswiki. пример конечного автомата
Вот с этого места поподробней )
Офлайн
И всё-таки она вертится!
В общем, Я ещё потестил на некоторых тачках, а также в виртуалках. Оказалось, что тот креш на фришке 7.3 с пайтоном 2.6.4, он только на той тачке и появляется. Пока причин не удалось установить, но повсюду он работает. Даже на такой же другой тачке (железо тоже приблизительно такое же). Короче говоря, mmap - решение данного вопроса. Можно тему закрывать, но не знаю как )
Офлайн