подскажите, как при неверном вводе пароля на третий раз, вывести сообщение на экран.
Т.е. в лог-файле строка с текстом ошибки типа (password check failed for user) после появления в лог-файле на третий раз сработал вывод текста для юзера.
Алексей Черемисин, Сделал, но не работает с лог файлом, который лежит в файловой системе.
Вот
def log_times(log, find, times):
count = 0
for line in log.split('\n'):
if find in line:
count += 1
if count >= times:
return True
return False
if __name__ == '__main__':
print(log_times(open('/var/log/auth.log').read(), 'password check failed for user (maxwork)', 2))
Повторюсь: пользователь на заблокированном экране в окне проверки ошибается с паролем несколько раз, на третий или 5й раз ошибки получает сообщение на экран.
Как я понимаю должна быть функция, в которой счетчик считывает ошибку три раза, прочитав с лог файла сообщение и после этого выполняется условие (вывод текста).
Max 342, А что хоть пишет? Отлаживать не пробовали? И зачем вы читаетте через read? читайте через for
Вот, в консоли накидал! Строка встречается 4 раза.
>>> def log_times(file, find, times):
... count = 0
... for line in file:
... if find in line:
... count +=1
... if count >= times:
... return True
... return False
...
>>> file = open("/var/log/system.log")
>>> log_times(file, "com.apple.quicklook", 2)
True
>>> file = open("/var/log/system.log")
>>> log_times(file, "com.apple.quicklook", 5)
False