使用python

时间:2017-08-09 19:24:01

标签: python search mmap

我想在12GB的文本文件中对字符串进行4000多次搜索。

目前,我正在使用mmap将文件加载到内存中,这样做效果很好(大约需要5秒):

with open('my_file.txt', 'rb') as f:
    m = mmap.mmap(f.fileno(), 0, prot=mmap.PROT_READ)
    data = m.read(-1)

不幸的是,搜索将永远持续下去:

for string_to_search_for in list_of_queries:
    if string_to_search_for in data:
        print "Found a match!"

如何加快搜索速度?

1 个答案:

答案 0 :(得分:0)

索引文件,然后应用您的搜索。你可以使用lucene以更好的方式做到这一点。看一下这个帖子Python file indexing and searching