2013-06-10 7 views
7

У меня есть сценарий, который читает файл, а затем завершает тесты на основе этого файла, однако я столкнулся с проблемой, потому что файл перезагружается через один час, и я не могу заставить скрипт перечитывать файл после или в этот момент времени.Перечитайте открытый файл Python

Итак: ПОЛУЧАЕТ новый файл READ Считывает файл выполняет тесты на файл ПОЛУЧИТЬ НОВЫЙ ФАЙЛ ЧИТАТЬ (с таким же именем - но это может измениться, если он является частью решения) читает новый файл выполнить то же самое тесты на новый файл

Может ли кто-нибудь предложить способ заставить Python перечитать файл?

+2

что вы пробовали? Не могли бы вы показать нам какой-то код? Какая проблема? – pypat

+2

Как мы можем показать вам, как исправить это, если вы не покажете нам свой код? –

+0

Переместите курсор в начало файла fp.seek (0), а затем fp.read() –

ответ

10

Либо seek к началу файла

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

или открыть файл еще раз (я предпочел бы этот путь, так как вы в противном случае сохраняя файл открыт в течение часа ничего не делая между проходами)

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

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

Сведя вместе

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

Вы можете переместить курсор в начало файла следующим образом:

file.seek(0) 

Тогда вы можете успешно прочитать его.

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