2017-08-09 43 views
-1

我想對12GB文本文件中的字符串執行4000多次搜索。使用python搜索12GB文件的最快方法

目前,我使用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!" 

如何加快搜索速度?

+0

加載文本文件到數據庫中,並使用數據庫,如果它是一個選項 – MooingRawr

+0

多線程? – MatTheWhale

+0

至少嘗試一次運行所有搜索的正則表達式。目前,您正在多次循環播放所有數據。而且......從磁盤中搜索12 GB的數據需要一段時間。 – dhke

回答