Прибавлять +1 в ячейку excel

Есть код который должен прибавлять +1 в ячейку если в txt файле есть mac-адрес:

sheetnameYNR = fileopen['Sheet']
findYNR = open('File.txt', 'r')
wordYNR = 'ff-ff-ff-ff-ff-ff'

for _ in range(3):
    time.sleep(5)
    if wordYNR in findYNR.read():
        sheetnameYNR['E5'].value += 1

MAC-адрес в файле есть всегда, и по идее он должен записать +3 в ячейку, но от записывает только один раз и все. Т.Е. изначально в ячейке значение 0, после выполнения кода должно быть 3, а вмесчто этого значение 1. Подскажите что я не так делаю?


Ответы (1 шт):

Автор решения: CrazyElf

Потому что с помощью .read() можно прочитать текст из открытого файла только один раз. Дальше чтение упрётся в конец файла. Если хотите опять начать читать, то нужно либо переоткрывать файл заново (открывать/закрывать файл на каждой итерации цикла), либо перемещать указатель с помощью .seek(0) в начало файла перед чтением, либо, если предполагается, что файл не будет меняться, то сохранять перед циклом всё прочтённое через .read в какую-то переменную, а в цикле уже проверять вхождение строки в эту переменную.

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

→ Ссылка