Python, чтение лог-файла, не работает код
Почему не работает?
import re
# В этом списке собираются подстроки для проверки через in
bad_line_parts = [
'Standby redo logfile selected for thread'
]
bad_reg_exprs = [
re.compile('[A-Z][a-z]{2} [A-Z][a-z]{2} \d{1,2} \d\d:\d\d:\d\d \d{4}'),
# здесь дополнить другими регулярными выражениями, если потребуется
]
message = input(':')
def is_fine_line(line):
return (not any(bad_line_part in line
for bad_line_part in bad_line_parts) and
not any(bad_reg_expr.match(line)
for bad_reg_expr in bad_reg_exprs))
def openning(message):
with open(message, 'r') as log_file:
for line in log_file.readlines():
if is_fine_line(line):
print(line)
Хотя этот код запускается
import re
# В этом списке собираются подстроки для проверки через in
bad_line_parts = [
'Standby redo logfile selected for thread'
]
bad_reg_exprs = [
re.compile('[A-Z][a-z]{2} [A-Z][a-z]{2} \d{1,2} \d\d:\d\d:\d\d \d{4}'),
# здесь дополнить другими регулярными выражениями, если потребуется
]
message=input(':')
def is_fine_line(line):
return (not any(bad_line_part in line
for bad_line_part in bad_line_parts) and
not any(bad_reg_expr.match(line)
for bad_reg_expr in bad_reg_exprs))
with open(message, 'r') as log_file:
for line in log_file.readlines():
if is_fine_line(line):
print(line)
!Это в IDLE]1
[
]2
Я хочу вызвать openning в др.программе просто
Ответы (1 шт):
Автор решения: Эникейщик
→ Ссылка
Нe работает потому что там нечему работать, кроме запроса input(":") Мало перенести код в функцию openning(), надо ещё эту функцию вызвать. И вот когда вы вызовете openning() в другой программе, все будет работать.