2015-04-13 3 views
-1

У меня есть этот код:Searching файл работает только один раз

import linecache 
car=1 
vehical=[] 
for x in range (7): #run this 7 times 
    car=car+3 #number plates are on every 3rd line 
    to_add=linecache.getline('finesV2.txt', car) #take the line (car variable contains integer concerning which one) 
    vehical.append(to_add) #add this to array 
file = open("details.txt", "r") 
car=0 
for x in range (7): #run this 7 times 
    searchfor=vehical[car][0:7] #load time to search file for 
    print "searchfor",searchfor #for debugging 
    for line in file: #run amount of lines that are in the file 
     if searchfor in line: #check if item being searched for is in that line 
      print line #print out the line 
    car=car+1 #increase the car variable to search for next item in vehicle array on next run 
file.close() 

Эта программа выводит следующее:

searchfor GX99QME 
GX99QME,Alex 123,test street 

searchfor IL45LTQ 
searchfor ZX46GSR 
searchfor GN11ILW 
searchfor IN82SSD 
searchfor WE50JEY 
searchfor QS26DLO 

Однако то, что я хочу, и ожидать, что программа сделать поиск файла для каждого из номерные знаки для загрузки деталей драйверов. Я подтвердил, что функция поиска работает и что номерные знаки являются правильными в файле я ищу в потому, что если линия 14 заменяется на:

if "IL45LTQ" in line: 

тогда программа возвращается:

searchfor GX99QME 
IL45LTQ,Tom 

searchfor IL45LTQ 
searchfor ZX46GSR 
searchfor GN11ILW 
searchfor IN82SSD 
searchfor WE50JEY 
searchfor QS26DLO 

В идеале, я хочу, чтобы программа возвращала детали для всех номерных знаков. Есть идеи?

ответ

0

После дальнейших исследований выясняется, что чтение не возвращается к началу, и мне пришлось добавить file.seek (0), чтобы вернуть его обратно в начало файла.

Смежные вопросы