Перечитайте открытый файл 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)
Затем вы можете успешно прочитать его.