Наш редактор создает файл журнала, который я хотел бы отслеживать и находить определенные специальные строки.
Мне нужно использовать поиск по подстроке, так как в строках журнала есть отметки даты и часов, и каждый раз они разные.
Я бы также по соображениям производительности не начинал поиск с начала и начинал поиск с последней строки.
KEYSTRING1 = 'Successfully opened document'
x = False
min = 0
while x is False:
max = sum(1 for line in open(LOGFILE))
for number in range(min, max):
logline = linecache.getline(LOGFILE, number).rstrip()
print(logline)
print('%i von %i' % (min, max))
min += 1
if logline.find(KEYSTRING1) is not -1:
x = True
print('Found')
break
Поскольку время меняется и зависит от уровня ошибки, журнал отличается длинным.
<09:42:21> Successfully opened document levels/testlevel/
Вот пример того, как он иногда печатает пустые строки, даже если строки 34+ не пусты.
31 von 34
Using Project Folder NAME
32 von 34
Using Engine Folder NAME
33 von 34
Using Asset Folder NAME
34 von 61
35 von 61
36 von 61
37 von 61
38 von 61
Кажется, моя логика работает, когда редактор не работает. Это также выглядит так, как будто работает, когда я вручную изменяю строки.
Но иногда возникают проблемы, когда приложение пишет в тот же момент, когда оно отслеживает.
Иногда это работает, иногда печатная строка пишет только пустые строки.