Перечитайте открытый файл Python

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

Так:

  • ПОЛУЧИЛ НОВЫЙ ФАЙЛ ДЛЯ ЧТЕНИЯ
  • Читает файл
  • выполняет тесты по файлу
  • ПОЛУЧИТЕ НОВЫЙ ФАЙЛ ДЛЯ ЧИТАНИЯ (с тем же именем - но это может измениться, если оно является частью решения)
  • Читает новый файл
  • выполнить те же тесты для нового файла

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

Ответ 1

Либо 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)

Ответ 2

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

file.seek(0)

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