Сохранение обученной модели через joblib
Содержание курса
Проверка существования файлов через os.path.isfile без загрузки содержимого
После трёх вызовов joblib.dump из предыдущих секций убедимся, что файлы действительно появились на диске. os.path.isfile возвращает True, если по указанному пути лежит обычный файл (не директория, не симлинк на несуществующий путь), — и делает это без открытия содержимого:
import os
assert os.path.isfile('model.joblib'), 'model.joblib не найден'
assert os.path.isfile('feature_schema.joblib'), 'feature_schema.joblib не найден'
assert os.path.isfile('metadata.joblib'), 'metadata.joblib не найден'
Если все три assert прошли без исключения — файлы на месте. Это лёгкая санитарная проверка — «файл существует по этому пути», а не «файл корректен». os.path.isfile не открывает файл, не десериализует его и ничего не говорит о целостности содержимого.
Что проверка не обнаруживает. Если при dump допустить опечатку 'modell.joblib' и ту же опечатку повторить в isfile, оба вызова пройдут без ошибки, а ожидаемый model.joblib так и не появится на диске. Проверка существования обнаруживает только отсутствие файла по проверяемому пути — желаемое имя нужно сверять отдельно.
Что касается ошибок записи — нехватка прав или места на диске — joblib.dump поднимает OSError или PermissionError и прерывает выполнение ещё до вызова isfile. Поэтому assert os.path.isfile(...) не дублирует обработку ошибок записи; он отвечает на другой вопрос: «файл с таким именем существует по этому пути».
Что внутри файлов корректно и пригодно к использованию, покажет следующий урок, где речь пойдёт о загрузке артефактов через joblib.load.
