def query(): staff_dic = {} f = file('stu_info.txt') for line in f.xreadlines(): stu_id, stu_name, mail,company,title,phone = line.split() staff_dic[stu_id] = [stu_name, mail,company,title,phone] while True: query = raw_input('\033[32;1mPlease input the query string\033[0m').strip() if len(query) <3: print 'You have to input at least 3 letters to query!' continue match_counter = 0 for k,v in staff_dic.items(): index = k.find(query) if index != -1: print k[:index] + '\033[32;1m%s\033[0m' % query + k[index + len(query):],v match_counter +=1 else: str_v = '\t'.join(v) index = str_v.find(query) if index != -1: print k,str_v[:index] + '\033[32;1m%s\033[0m' % query + str_v[index + len(query):] match_counter +=1 #for i in v: #going to do the fuzzy matchs # if i.find(query) != -1: #found item # str_v = '\t'.join(v) # print k,str_v # match_counter +=1 # break print 'Matched \033[31;1m%s\033[0m records!' % match_counter if __name__ == '__main__': query()