204просмотров
19.4%от подписчиков
11 марта 2026 г.
Score: 224
💡 Lazy Evaluation и генераторы для обработки больших файлов import logging def read_large_file(file_path): try: with open(file_path, 'r') as file: yield from (line.strip() for line in file) except FileNotFoundError: logging.error(f"Файл {file_path} не найден.") except Exception as e: logging.error(f"Произошла ошибка: {e}") def process_log_file(file_path): total_lines = 0 error_count = 0 for line in read_large_file(file_path): total_lines += 1 if "ERROR" in line: error_count += 1 return total_lines, error_count # Пример использования
file_path = "server.log"
total_lines, error_count = process_log_file(file_path)
print(f"Всего строк: {total_lines}, ошибок: {error_count}") 📌 Этот код демонстрирует использование генераторов для отложенной обработки больших файлов журнала. Вместо загрузки всего файла в память, каждая строка обрабатывается по мере необходимости, что экономит ресурсы. Полезно для анализа логов серверов или других больших файлов данных, когда память ограничена или файл слишком велик для однократной загрузки. Подпишись 👉🏻 @KodduuPython 🤖