使用python搜索12GB文件的最快方法
我想在12GB的文本文件中对字符串执行4000多次搜索 目前,我正在使用使用python搜索12GB文件的最快方法,python,search,mmap,Python,Search,Mmap,我想在12GB的文本文件中对字符串执行4000多次搜索 目前,我正在使用mmap将文件加载到内存中,效果很好(大约需要5秒钟): 不幸的是,搜索需要花费很长时间: for string_to_search_for in list_of_queries: if string_to_search_for in data: print "Found a match!" 如何加快搜索速度?为文件编制索引,然后应用搜索。您可以使用lucene以更好的方式完成此任务。查看此线程将文
mmap
将文件加载到内存中,效果很好(大约需要5秒钟):
不幸的是,搜索需要花费很长时间:
for string_to_search_for in list_of_queries:
if string_to_search_for in data:
print "Found a match!"
如何加快搜索速度?为文件编制索引,然后应用搜索。您可以使用lucene以更好的方式完成此任务。查看此线程将文本文件加载到数据库中并使用该数据库,如果它是一个选项MultiThreading?请至少尝试使用一个一次运行所有搜索的正则表达式。目前,您正在对所有数据进行多次循环。而且。。。好。。从磁盘中搜索12 GB的数据需要一段时间。@MatTheWhale,这可能会破坏页面缓存。这是一个线性搜索,而CPython的mmap实现则不是,这意味着问题很可能是IO限制的。
for string_to_search_for in list_of_queries:
if string_to_search_for in data:
print "Found a match!"