I am doing a text search in a rather big txt file (100k lines, 7mo)
Text is not that big but I need a lot of searches.
I want to look for a target string and return the line where it appears.
My text file is formatted so that the target can only appear in one line.
What is the most efficient way? I do a lot of searches so I want to improve speed.
Here is mycode right now:
def lookup_line(target):
#returns line of the target, or None if doesnt exist
line=None
dir=os.path.dirname(__file__)
path=dir+'/file.txt'
file=open(path,'r')
while line==None:
l=file.readline()
l=unicode(l,'utf-8')
if target in l:
break
if l=='': break #happens at end of file, then stop loop
line=l
if line=='':line=None #end of file, nothing has been found
file.close()
return line
I use this python code for a google Appengine app.
Thanks!
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…