2013-06-10 13 views
7

Mam skrypt, który odczytuje plik, a następnie wykonuje testy w oparciu o ten plik, ale mam problem z plikiem, ponieważ plik ładuje się po godzinie i nie mogę pobrać skryptu do ponownego odczytu plik po lub w tym momencie.Ponownie przeczytaj otwarty plik Python

Więc: dostaje nowy plik, by zapoznać Odczytuje plik wykonuje testy na pliku Poznawanie odczytywanego pliku (z tą samą nazwą - ale to może się zmienić, jeśli jest to część roztworu) Odczytuje nowy plik wykonać sam testy nowego pliku

Czy ktoś może zaproponować sposób, aby Python ponownie odczytał plik?

+2

co próbowałeś? Czy możesz pokazać nam jakiś kod? Jaki jest dokładny problem? – pypat

+2

Jak możemy pokazać ci, jak to naprawić, jeśli nie pokazujesz nam swojego kodu? –

+0

Przesuń kursor na początek pliku- fp.seek (0), a następnie fp.read() –

Odpowiedz

10

Albo seek do początku pliku

with open(...) as fin: 
    fin.read() # read first time 
    fin.seek(0) # offset of 0 
    fin.read() # read again 

lub ponownie otworzyć plik (wolałbym w ten sposób, ponieważ jesteś inaczej utrzymaniem plik otwarty na godzinę robi nic między podań)

with open(...) as fin: 
    fin.read() # read first time 

with open(...) as fin: 
    fin.read() # read again 

Kładzenie to razem

while True: 
    with open(...) as fin: 
     for line in fin: 
      # do something 
    time.sleep(3600) 
12

Można przesunąć kursor do początku pliku w następujący sposób:

file.seek(0) 

Wtedy można go z powodzeniem czytać.

Powiązane problemy