3
考慮一行150萬行,每行大約50-100個單詞的文本文件。在非索引文本文件中搜索單詞的最快方法 - Python
要查找包含字線,採用os.popen('grep -w word infile')
似乎快於
for line in infile:
if word in line:
print line
一個要不然怎麼可以搜索在Python中的文本文件一個字?搜索這個大型的unindex文本文件的最快方法是什麼?
我認爲使用正則表達式可能會非常快。但是由於你的文件非常大,無法將其加載到RAM中進行正則表達式分析。但是,可以通過大塊來讀取文件,並使用正則表達式逐個塊地進行分析。這樣做可能會導致研究的字符串可能會在兩個區塊上重疊,然後不會被檢測到。因此,塊的分析必須以某種方式完成。我已經編寫了這樣的代碼,並將其發佈到stackoverflow.com上。讓我搜索它。 – eyquem
我發現了我的以下文章(http://stackoverflow.com/questions/16583591/read-a-very-big-single-line-txt-file-and-split-it),其中代碼旨在檢測字符串ROW_DEL放在一個大文件中,並用較短的字符串替換它們。你的問題只是檢測一個模式,它更簡單。我想你可以在我引用的帖子中看看,看看我分析文本塊後的方式,並將其原理適應於更有限的需求。 – eyquem