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