Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с python

иван Фролов Знаток (374), закрыт 2 месяца назад
У меня есть файл, по нему надо пройтись и найти нужные элементы, когда найдется элемент, надо взять то строку где находится элемент и вывести
Лучший ответ
Татьяна Просветленный (36401) 3 месяца назад
 def find_elements_in_file(file_path: str, search_terms: list): 
"""
Проходит по файлу, находит строки, содержащие хотя бы один элемент из search_terms.
:param file_path: Путь к файлу.
:param search_terms: Список элементов для поиска.
"""
with open(file_path, 'r', encoding='utf-8') as file:
# Проходим по каждой строке файла и проверяем наличие хотя бы одного элемента из search_terms
result = (line for line in file if any(term in line for term in search_terms))
for line in result:
print(line.strip()) # Выводим строку без лишних символов перевода строк

# Пример использования:
search_terms = ['error', 'warning', 'critical']
find_elements_in_file('logfile.txt', search_terms)
Какой формат файла должен быть logfile.txt, раз ты его не предоставил тут в вопросе:
 INFO 2024-09-19 12:34:56 Server started 
WARNING 2024-09-19 12:35:00 High memory usage detected
INFO 2024-09-19 12:35:10 User logged in
ERROR 2024-09-19 12:36:00 Database connection failed
INFO 2024-09-19 12:36:30 User logged out
CRITICAL 2024-09-19 12:37:15 System overload
INFO 2024-09-19 12:38:00 Server stopped
ERROR 2024-09-19 12:39:00 Unable to restart server
WARNING 2024-09-19 12:40:00 Disk space running low
Ожидаемый результат выполнения программы:
 WARNING 2024-09-19 12:35:00 High memory usage detected 
ERROR 2024-09-19 12:36:00 Database connection failed
CRITICAL 2024-09-19 12:37:15 System overload
ERROR 2024-09-19 12:39:00 Unable to restart server
WARNING 2024-09-19 12:40:00 Disk space running low
иван ФроловЗнаток (374) 3 месяца назад
спасибо
Остальные ответы
S.H.I. Оракул (68441) 3 месяца назад
 # Замените 'filename.txt' на имя вашего файла 
# Замените элементы в списке на те, которые вы ищете

target_elements = ['элемент1', 'элемент2', 'элемент3']

with open('filename.txt', 'r', encoding='utf-8') as file:
for line in file:
if any(element in line for element in target_elements):
print(line.strip())
Похожие вопросы