<b>Python-скрипт ломается не в коде, а в входных данных и окружении</b>
За неделю в репах чаще всего всплывают одни и те же ошибки: скрипт ждёт идеальный CSV, ходит в сеть без таймаутов и молча глотает исключения. В итоге локально всё «работает», а в cron, CI или на сервере — тишина и пустые файлы.
Перед запуском проверь три вещи:
— вход: кодировка, разделитель, пустые строки, неожиданные колонки;
— окружение: переменные, права на файлы, текущая рабочая директория;
— выход: куда пишешь результат, есть ли место, не затираешь ли старый файл.
Для сетевых скриптов базовый набор такой: timeout на каждый запрос, retries только на временные ошибки, логирование статуса и тела ответа хотя бы на уровне ошибок. Если парсишь чужой сайт или API, не полагайся на стабильность структуры HTML или JSON — добавь проверки на отсутствие поля и fallback-ветку.
Ещё одна частая поломка — «тихий успех». Скрипт завершился без traceback, но ничего не сделал: не нашёл строк, не создал папку, не сохранил файл. Поэтому в конце полезно печатать короткий итог: сколько строк прочитано, сколько записано, сколько пропущено.
Если у скрипта есть только одна точка контроля, она должна быть в начале: валидация входа и явный fail fast. Так отлавливаются 80% проблем раньше, чем они доедут до продакшена.
Python Web & Scripts — Django, FastAPI, скрипты
@python_web_scripts
<b>Python-скрипт ломается не в коде, а в входных данных и окружении</b>
Этот пост опубликован в Telegram-канале Python Web & Scripts — Django, FastAPI, скрипты. Подписаться можно по ссылке: @python_web_scripts.