Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python搜索12GB文件的最快方法_Python_Search_Mmap - Fatal编程技术网

使用python搜索12GB文件的最快方法

使用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以更好的方式完成此任务。查看此线程将文

我想在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以更好的方式完成此任务。查看此线程

将文本文件加载到数据库中并使用该数据库,如果它是一个选项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!"