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

Рейтинг: 0Ответов: 2Опубликовано: 08.05.2023

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

Ответы

▲ 1

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

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

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

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

▲ 0

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