Разработка приложения Python для извлечения, манипулирования и объединения файлов с различных SFTP-серверов. - PullRequest
0 голосов
/ 05 марта 2019

Мой вопрос посвящен аспекту разработки приложения / скрипта на python.

Существует продукт, который продается, который ожидает определенного формата перед подачей в базу данных.Существуют различные каналы продаж, которые продают этот продукт, и каждый канал продаж создает свой собственный уникальный файл (уникальный в том смысле, что он имеет все требуемые заголовки, хотя названия этих заголовков различаются в зависимости от канала продаж и канала продаж, наряду с различными другими заголовками, которыеможет относиться к определенным аспектам их бизнеса).

Я бы хотел создать приложение / скрипт на python, который можно запускать каждый день для выполнения следующих действий:

  1. Подключение к SFTP-серверу для разгрузки ежедневного файла (файлы имеютстандартное соглашение об именах)
  2. Если файлов нет, автоматически отправьте электронное письмо в список рассылки (список рассылки будет отличаться от канала продаж к каналу продаж), чтобы сообщить им, что файл не найден
  3. Если файл существует, то сценарий сканирует файл, определяет, какой продукт был продан на основе столбца «продукт», добавляет префикс к уникальному идентификатору записи каждой строки в файле (префикс зависит от того, каким каналом продаж он являетсяИсходя из) и добавляет все необходимые столбцы (игнорируя столбцы, которые не относятся к конкретному продукту) к стандартному ежедневному формату файлов для моей системы.
  4. Я повторяю шаги 1-3 для каждого сервера SFTP, пока не получуодин большой стандартизированный файл (простой текстовый файл, разделенный каналом) для каждого продукта, который поступил из каждого отдельного канала продаж.
  5. Создание сводного еженедельного и агрегированного ежемесячного отчета для представления общих продаж, сделанных по каждому каналу продаж.Отправляйте еженедельные и ежемесячные отчеты на SFTP-сервер.

Это приложение / сценарий должно быть гибким и надежным, поскольку новые каналы продаж постоянно добавляются на новые сайты SFTP-сервера.Я действительно ищу некоторое понимание того, как я должен идти о разработке этого.

Создаю ли класс или различные классы с функциями, перечисленными выше?Создаю ли я один длинный сценарий, в котором определено множество функций, а затем записываю все в main ()?Я пробовал программировать на Python 3.X в течение нескольких лет, но я всегда писал базовые сценарии и никогда не создавал ничего подобного.Любые отзывы, мысли или понимание будут с благодарностью!Заранее спасибо.

Мне также хотелось бы иметь гибкость для записи статистики и сохранения ее в таблице базы данных (SQL Server).Например, сколько времени потребовалось программе от начала до конца, сколько файлов было собрано в тот день, сколько записей было отсканировано и т. Д. Это идеально, но не является обязательным требованием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...