我是python的初学者,我需要在一个巨大的txt文件中检查给定字符串的存在。到目前为止,我已经编写了这些代码,它在我的数据库的轻子子样本上运行时没有任何问题。问题是,搜索整个数据库需要超过10个小时,而我正在寻找一种加速此过程的方法。简化txt搜索的python代码
到目前为止,代码从我放在一起的一个txt(list.txt)中读取一个字符串列表,并搜索数据库每行(hugedataset.txt)中的每个项目。我的最终输出应该是数据库中存在的项目列表(或者,不存在的项目列表)。我敢打赌,有一种更有效的方式来做事...
谢谢你的支持!
import re
fobj_in = open('hugedataset.txt')
present=[]
with open('list.txt', 'r') as f:
list1 = [line.strip() for line in f]
print list1
for l in fobj_in:
for title in list1:
if title in l:
print title
present.append(title)
set=set(presenti)
print set
你们需要每行信息?如果你只需要知道每个项目是否在那里,你是不是可以将整个数据库作为一个单独的字符串来搜索,而不是逐行分解它呢? – RichieHindle
其实我不需要每行信息,我需要的只是知道是否已经存在以及哪些字符串已经存在.. – user2447387
由于您只需要知道存在哪些单词,因此不要保留列表和“追加”对它,然后将它转换为最后一组。这意味着你必须跟踪(可能是巨大的)列表,浪费内存。而是保留一个'set'和'add'给它。 – svk