Скрипты на языке Python: что писать самому и где грабли
← Все материалы
Гайд

Скрипты на языке Python: как написать, запустить и не сломать через неделю

Скрипты на языке Python — это небольшие программы под одну конкретную задачу: разложить файлы, свести выгрузки, забрать данные, отправить отчёт. Первая рабочая версия действительно пишется за вечер, и это не преувеличение. Разница между ней и инструментом, который работает сам каждый день, — примерно неделя работы, и она уходит вовсе не на логику. Ниже — что делается быстро, где начинаются грабли и в какой момент дешевле отдать задачу.

1 вечердо первой версии, которая делает нужное
3–7 днейдо версии, которая работает без вас
от 15 000 ₽скрипт под задачу с запуском по расписанию

Чем скрипт отличается от программы

«Скрипт» — это не про размер, а про способ жизни кода. Одна задача, один способ запуска, один пользователь — вы. Ни интерфейса, ни установки, ни версий: есть файл, который что-то делает и завершается.

Python выигрывает здесь не скоростью выполнения, а стандартной библиотекой: пути и папки, даты, CSV, JSON, архивы, почта, аргументы командной строки, логи — всё это доступно без единой установки. Внешние пакеты нужны там, где начинаются Excel, HTTP-запросы и таблицы данных.

Ручная рутинаСкрипт под задачуПроверки и логиЗапуск порасписаниюСигнал о сбое
Первые два шага занимают вечер, остальные три — основную часть работы

Как написать скрипт на Python: вечер до первого результата

Порядок, который экономит больше всего времени новичку. Он же отвечает на вопросы про создание скрипта на Python и установку — почти все проблемы старта живут именно здесь.

  1. Поставить Python и проверить запуск. На Windows при установке отметьте добавление в PATH, иначе команда не найдётся. Проверка одна: вывести версию из терминала.
  2. Сделать виртуальное окружение под проект. Модуль venv входит в состав Python. Окружение изолирует пакеты проекта от системных, и через полгода вы точно будете знать, что именно скрипту нужно.
  3. Записать зависимости. Список пакетов в requirements.txt — три строки текста, которые превращают «у меня работало» в воспроизводимый запуск на другой машине.
  4. Сначала сделать вручную и записать шаги. Пять пунктов на бумаге: откуда беру, что проверяю, что считаю, куда кладу. Код после этого пишется в разы быстрее, потому что становится видно, где в процессе дыры.
  5. Написать самый прямой вариант. Без классов, без универсальности, с жёстко прописанными путями. Задача первой версии — доказать, что данные вообще достаются и результат совпадает с ручным.
  6. Сверить с ручным результатом. Не «похоже», а совпало по строкам и суммам. Это единственный момент, когда сверка стоит дёшево.

Главная ловушка первого дня — писать сразу «правильно и на будущее». Универсальный код под задачу, которую вы ещё не поняли, почти всегда выбрасывается. Сначала работающий прямой вариант, потом уборка.

К концу вечера у вас есть простой скрипт на Python, который делает нужное при запуске руками. Это честные 20 % проекта — и те самые 20 %, ради которых многие задачи не стоит отдавать наружу вовсе.

Примеры скриптов на Python, которые окупаются первыми

Полезные скрипты автоматизации на Python почти всегда растут из фразы «я это делаю каждую неделю руками». Типовые задачи и то, чем они решаются:

ЗадачаЧто делает скриптЧем делается
Разбор входящей папкиЧитает файлы, переименовывает по дате и раскладывает по подпапкамpathlib, shutil — стандартная библиотека
Сводный отчётСобирает несколько CSV и xlsx, сверяет и считает итогиpandas, openpyxl
Выгрузка из чужого сервисаХодит в API и складывает ответы в базу или таблицуrequests или httpx
Сбор данных со страницОбходит каталог и достаёт нужные поляrequests, BeautifulSoup, lxml
Доставка результатаКладёт готовый файл в почту или Telegramsmtplib, обычный HTTP-запрос
Контроль сроковСравнивает даты и пишет, что просроченоdatetime — стандартная библиотека

Отдельно про готовые скрипты на Python из интернета. Как образец — нормально. Но запускать чужой код на рабочих данных, не прочитав его целиком, не стоит: он рассчитан на чужие форматы, почти никогда не проверяет вход и часто перезаписывает файлы на месте. Первый прогон — всегда на копии.

Запуск скрипта на Python: Windows, Linux, сервер

Запуск руками — это команда с указанием файла. Интереснее вопрос, как заставить скрипт запускаться самому, потому что именно здесь ломается больше всего проектов.

Три ошибки повторяются почти у всех: относительные пути (в терминале работает, из планировщика нет), потерянный вывод (cron шлёт его почтой, а без настроенной почты он исчезает) и запуск системным интерпретатором вместо того, что в окружении с пакетами.

Проверять расписание нужно не на бумаге. Поставьте задачу на ближайшие пять минут, дождитесь запуска и посмотрите лог. Половина «настроенных» расписаний не срабатывает ни разу, и узнают об этом через месяц.

Пока читаете — можно сразу проверить свою задачу. Опишите процесс, и я скажу, решается ли он и во сколько обойдётся.

Где скрипт ломается на второй неделе

Первая версия падает громко и сразу — это не проблема. Проблема там, где скрипт работает, а результат тихо портится:

Конфиг: пути, доступы, период — вне кодаПроверка входа: колонки, типы, количество строкОсновная логикаЗапись по ключу, а не вставкаЛоги: что, когда и сколько обработаноУведомление о сбое в мессенджер или почту
Логика — один слой из шести. Остальные пять и отличают скрипт от инструмента

Правило, которое стоит внедрить первым: молчаливый сбой запрещён. Скрипт либо выдал результат, либо сообщил об ошибке. Пустой файл на месте отчёта — худший из возможных исходов, потому что по нему принимают решения.

Что превращает код из туториала в рабочий инструмент

Написание скриптов на Python для себя и для процесса, на котором завязаны деньги, — разные дисциплины. Отличий немного, и добавляются они за несколько дней.

СКРИПТ ИЗ ТУТОРИАЛАСКРИПТ, КОТОРЫЙ ЖИВЁТ ГОДПути прописаны прямо в кодеПароли и токены рядом с логикойПовторный запуск удваивает данныеОб ошибке узнаёте случайноПонятен только автору и только сейчасПути и период — параметры запускаСекреты в переменных окруженияПовтор за тот же период безопасенСбой сразу приходит сообщениемЕсть логи и краткое описание запуска
Ни один пункт справа не про сложный код — все про предсказуемость

Три вещи, которые я закладываю по умолчанию. Параметры вместо констант: период и пути задаются при запуске, тогда прошлый месяц пересчитывается без правки кода. Идемпотентность: повторный запуск за тот же период даёт тот же результат, а не второй комплект строк. Сохранение исходников: скачанные файлы складываются как есть — когда через месяц спросят, откуда цифра, понадобятся именно они.

Когда заказывать не нужно

Значительную долю задач, под которые просят разработку, дешевле закрыть самому или не закрывать вообще.

Отдавать имеет смысл в обратной ситуации: рутина повторяется, источников несколько, результат нужен без вашего участия. Платите вы тогда не за код — за те самые пять слоёв вокруг него.

Логика самой задачи≈ вечерПроверки, повторы, дедупл…≈ 2 дняРасписание, логи, уведомл…≈ 2 дня
Ориентировочное распределение трудоёмкости в типовом скрипте под расписание
ЗадачаЧто входитСрок и цена
Скрипт под одну операциюОдин источник, результат в файл, запуск руками1–2 дня, от 15 000 ₽
Скрипт по расписанию2–5 источников, проверки, логи, уведомления о сбое3–7 дней, 40 000–90 000 ₽
Набор связанных скриптовОбщий конфиг, хранилище, догрузка за прошлые периодыот 120 000 ₽
ПоддержкаПравки под новые форматы источниковот 8 000 ₽ в месяц

Две самые частые темы для таких скриптов разобраны отдельно: сбор данных со страниц — в статье про парсер сайта на Python, а сборка отчётов в таблицы — в разборе автоматизации Python и Excel.

Частые вопросы

Как написать скрипт на Python новичку?

Сначала опишите процесс словами: откуда берём данные, что проверяем, что считаем, куда кладём результат. Затем поставьте Python, создайте виртуальное окружение и напишите самый прямой вариант без универсальности. Последний шаг обязателен — сверить результат с тем, что вы делали руками.

Как запустить скрипт на Python в Windows?

Из терминала — командой с указанием интерпретатора и полного пути к файлу; если Python не найден, при установке не был отмечен пункт добавления в PATH. Для запуска по расписанию используется Планировщик заданий: там задаются интерпретатор из виртуального окружения, путь к скрипту и рабочая папка.

Чем запускать скрипт по расписанию на Linux?

cron для простых случаев и таймер systemd, когда нужны журнал запусков, догон пропущенного запуска после перезагрузки и ограничение ресурсов. В обоих случаях указывайте абсолютные пути: cron не читает ваш профиль, поэтому переменные окружения и PATH там другие.

Нужно ли виртуальное окружение для одного скрипта?

Да, и оно стоит одну команду. Окружение изолирует пакеты проекта от системных, избавляет от конфликтов версий и позволяет зафиксировать зависимости в requirements.txt. Без него через полгода никто не вспомнит, что именно скрипту нужно для запуска.

Можно ли брать готовые скрипты из интернета?

Как образец — да, это экономит время. Но перед запуском на рабочих данных код нужно прочитать целиком: чужие скрипты рассчитаны на чужие форматы, редко проверяют вход и часто перезаписывают файлы на месте. Первый прогон — всегда на копии данных.

Сколько стоит написать скрипт на заказ?

Скрипт под одну операцию с запуском руками — от 15 000 ₽ и 1–2 дня. Версия по расписанию с проверками, логами и уведомлениями о сбоях — 40 000–90 000 ₽ за 3–7 дней. Основное время уходит не на логику, а на обвязку, которая держит скрипт живым.

скрипты на языке pythonкак написать скрипт на pythonзапуск скрипта на pythonскрипты автоматизации на pythonpython скрипт на сервере

Читайте дальше

Опишите рутину — скажу, стоит ли её автоматизировать

Расскажите, что делаете руками и как часто: если задача закрывается штатными средствами, скажу прямо, а если нет — назову срок и цену скрипта.

Обсудить задачу