Учитывая текстовый файл в 1,5 миллиона строк и около 50-100 слов в строке.Самый быстрый способ поиска слова в неиндексированном текстовом файле - Python
Чтобы найти строки, которые содержат слово, используя os.popen('grep -w word infile')
, кажется, быстрее, чем
for line in infile:
if word in line:
print line
Как еще можно искать слово в текстовом файле в Python? Каков самый быстрый способ поиска через этот большой текстовый файл unindex?
Я думаю, что использование регулярного выражения может быть очень быстрым. Но поскольку ваш файл очень большой, он не может быть загружен в оперативную память, чтобы анализировать повторно. Тем не менее, можно прочитать файл большими кусками и проанализировать с регулярным выражением каждый фрагмент один за другим. Это может привести к тому, что исследуемая строка может быть перекрыта по двум кускам, а затем не обнаружена. Следовательно, анализ кусков должен выполняться определенным образом. Я уже написал такой код и разместил его здесь на stackoverflow.com. Позвольте мне найти его. – eyquem
Я нашел следующее сообщение (http://stackoverflow.com/questions/16583591/read-a-very-big-single-line-txt-file-and-split-it), в котором код предназначался для обнаружения строк ROW_DEL в большом файле и заменить их более короткими строками. Ваша проблема заключается только в том, чтобы обнаружить шаблон, это проще. Я думаю, вы можете взглянуть на мой цитируемый пост, чтобы изучить, как я проанализировал кусок текста после куска и адаптировать его принцип к вашим более ограниченным потребностям. – eyquem