Как очень быстро найти строку в файле python

У меня есть огромный файл txt формата (вес около 25 Гб) в нём определённые данные, мне нужно искать слово и если оно есть то выводить всю строку. Какой самый быстрый способ поиска и вообще целесообразно использовать txt или может перевести в другой формат например csv для увеличения скорости чтения? Кто поможет буду благодарен.


Ответы (2 шт):

Автор решения: nexoma

вы, скорее всего под виндой, но есть пакет busybox https://busybox.net/ команда grep (осуществляет указанный в комментарии) линейный поиск:

cat /путь/файл.txt | grep "слово_для поиска" # либо регулярное выражение
grep "string" file.txt

небольшая статья https://habr.com/ru/articles/229501/

если требуется регулярная выборка, то, действительно, лучше занести данные в базу данных. если вы начинающий, можете попробовать sqlite, h2, hsqldb

→ Ссылка
Автор решения: Noskill

как вариант - использовать подход MapReduce. То есть, разбить файл на(допустим) сотню поменьше. Распараллелить обработку(с asyncio) каждого файла. Затем объединить данные. можно воспользоваться не asyncio а чем-то более знакомым -threading/multiprocessing

→ Ссылка