Найти - Пользователи
Полная версия: Возможно ли это реализовать на Python?
Начало » Python для новичков » Возможно ли это реализовать на Python?
1 2
joneb1983
Всем привет. Работаю с достаточно однообразными процессами и рутинными задачами.
Возникло желание выучить Python для автоматизации. Возник вопрос, можно ли его решить с помощью Python? А именно:
1. Создать десктопное приложение.
2. Приложение будет автоматически формировать письмо в Outlook 2019 с нужным адресатом, темой, текстом и вставленными в тело письма данными.
3. В окне приложения для формирования письма нажимаешь по порядку из вслывающего списка нужные топики (которые тебе нужны).
4. Потом нажимаешь “Сформировать” формируется нужное письмо с со всеми данными перед отправкой.
5. Какие данные будут браться и откуда:

  • Копирование и вставка в тело письма строки из exel таблицы (или из таблицы в web приложении).
  • Делать скрин и вставлять его в тело письма нужного графика из web приложения.
  • Заходить по ssh в putty на сетевое устройство, выполнять ping до нужного IP и эту диагностику нужно тоже скопировать и прикрепить в тело письма.

Это можно реализовать в автоматическом режиме на Python? Какие фреймворки или библиотеки учить и что еще нужно? Заранее спасибо.



ZerG
Для отправки писем и формирования их по шаблонам, как и для доступа по ссш - сторонних приложений типа аутглюка или патти не нужно - питон умеет делать это сам.
Гуи приложение так же доступно на нескольких фреймворках = наиболе простой ето Ткинтер
Касаемо писем нужно смотреть в сторону smtp либ по ссш - ссшлиб.
А вот касаемо сделать скрин - ето сложнее
Возможно нужно будет открыть какуюто ссылку и страничку сковертировать в джипег
или другой удобный формат - хотя никто не запрещает тот же ХТМЛ формат письма использовать

С другой стороны - если это внутренний сервис моэет имеет смысл писать не гуи приложение подд ОС а веб? Пусть себе крутиться на сервере - имеет доступы нужные - он же формирует и отправляет хоть и по графику.
py.user.next
joneb1983
Это можно реализовать в автоматическом режиме на Python?
Года через три, может, реализуешь. Долго объяснять, почему.

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

Можешь также попробовать из xls-файла взять определённую строку и сохранить её в текстовый файл.

Можешь попробовать взять первый текстовый файл, который у тебя получился, когда ты письмо составлял, и взять второй текстовый файл, который у тебя получился, когда ты строку из xls-файла брал, а потом взять и эту строку из второго файла добавить в текст письма в первом файле.

Это всё простенькие действия, причём мелкие какие-то действия, которые нужны для выполнения общей задачи. Вот когда ты не сделаешь ни одно из них, потому что тебе это покажется просто невозможным, тогда ты и поймёшь, почему так долго надо учиться, чтобы просто изготовить вот этот автоматический скрипт, который целиком что-то там делает осмысленное.
joneb1983
То
ZerG
Для отправки писем и формирования их по шаблонам, как и для доступа по ссш - сторонних приложений типа аутглюка или патти не нужно - питон умеет делать это сам.
Мне необходимо чтобы формиловалось именно письмо в аутлуке, так как работаем в корпоративной почте + надо проверить корректность данных перед отправкой письма.
Я скинул файл со скрином письма которое должно сформироваться.
1. Адрес надо будет взять, например из строки exel документа.
2. Адрес для поля копия тоже из exel документа.
3. Тема должна сформироваться автоматически и с подставленным номером магазина и адресом.
4. Текст тоже автоматом с нужным номером магазина.
5. Скопированные данные таблицы из внутреннего веб приложения.
6. Скопированный график из внутреннего веб приложения.
7. Скопированная диагностика из Putty.

ZerG
С другой стороны - если это внутренний сервис моэет имеет смысл писать не гуи приложение подд ОС а веб?
То есть лучше не десктопное приложение делать а web?

В общем вот такая задача которую я выполняю вручную каждый раз. Захожу туда то, копирую то то, вставляю в письмо, захожу в putty на сетевое устройство делаю диагностику, копирую ее и вставляю в письмо и так по кругу и за смену бывает очень часто. Можно это как то автоматизировать? Я еще не силен в Python, вот задумался о его изучении. Сможет ли он мне помочь в данной ситуации?
xam1816
joneb1983
Сможет ли он мне помочь в данной ситуации?
Сможет, задача не сложная. Для начала к примеру можно определить абстрактную модель вашей программы.
Программа отправляет письмо по электронной почте. Пусть это будет верхний уровень абстракции. Т. е у вас будет файл.py при выполнении которого к вам на почту придёт письмо с тестовой темой и тестовым текстом.Вы такое сделать не сможете, но если у кого есть желание из новичков, пусть сюда скинут свой вариант. Задача
запуск файла->алгоритм_отправки_письма_на_свою_почту->письмо_в_электронном_ящике
ZerG
Ответ сделать можно.
Но работа с прложениями это очень непростая тема - так что как сказали вам выше дажен не уверен что через три года у вас это получится.
joneb1983
ZerG
Но работа с приложениями это очень непростая тема - так что как сказали вам выше дажен не уверен что через три года у вас это получится.
Прям заинтриговали ! Неужели это настолько сложнейшая задача, минимум аж на 3 года? Создать маленькое приложение. Все желание отбило учить Python
Может есть другой язык на котором можно реализовать это десктопное приложение хотя бы за 1 год, может Java?
Можно конечно попросить программиста за деньги это сделать, но интересно самому, так как работаю в IT на
первой линии поддержки и давно задумываюсь об изучении программирования. Также задачи у меня часто меняются, добавляются новые или их надо будет усовершенствовать, поэтому автоматизация это прям нужная штука. Хотелось бы чтобы это выглядело нормальным образом в виде приложения, что бы могли пользоваться другие коллеги.

ZerG
У вас мозг работает не в том направлении что бы решать такие задачи.
Есть ос. Под нее есть приложение. Вам каким либо образом нужно отфильтровать запущеные приложения (а у каждого могут быть дочерние окна) и произвести какие либо действия с ним как то выполнить команду, запустить операцию, вставить текст, сделать скрин и так далее. Это далеко не так просто как кажеться потому что не все разработчики дают АПИ для своих приложений, а если говорить про виндовс то ее чертов WinAPI тот еще гемморой.

Давайте начнем с простого:
Вам нужно сформировать письмо и отправить почту!
НЕ НУЖНО для этого использовать чужую программу. Ведь сам питон (другой язык) позволяет сформировать письмо - проверить его - сделать все что необходимо и отправить его как раз не используя тормознутый аутглюк.

Все вышеизложенное относиться и к SSH
НЕ НУЖНО ни на одном языке запускать putty что бы соединиться по ссш и выполнить комманду на удаленном сервере и получить от нее ответ! Это все делается в рамках инструментария самого языка.

Касаемо же открыть вкладку (конкретную из многих) и сделать скрин - как программа должна понять что вкладка именно та? А если запустили два раза браузер? ИТД ИТП. Это при том что действия на вашем екране будут заблокированны и вы не сможете ничего выполнять пока не закончиться скрипт - так как хотите привязаться к системным кликам мышкой и клавишам. Ну и представьте что во время выполнения программы вылетел аутлук или случайно вы ткнули на другую область? Вам такого наклацает и отправит что сама виндовс вприсядку будт вырывать волосы на лобке мамонта.

Вы совершенно не понимаете как работает ОС и приложения - а мы взяли только связку виндовс и аутглюк. А если надо будет запустить на макось или линукс что то? Там аутглюка нет - а вот тот же питон отработает все вопросы одинаково потому что логика будет зашита в коде а не в привязке к приложениям.

Давайте мы забудем на секундочку про питон. Возьмите CMD или там Powershell скрипт - сугубо команды управления виндой и попробуйте хотябы создать и отправить письмо через ваш аутлук. С выбором адрессов и так далее…

Опять же - если вы так боитесь за результат - в чем проблема?
Написали программу - она выгребла все данные из нужным вам мест - сформировала письмо на отправку
ПЕРЕД ОТПРАВКОЙ открыла вам окошко с содержимым которое выглядит точно как ваше окошко в аутглюке и КНОПКОЙ ОТПРАВИТЬ?
Вы проверили что все окей - и отправили? Хотя нахера ети мучения - можно уже и руками то письмо составить. А если писем 100 то вы руками их собирая больше ошибок допустите чем ваша программа. И сомневаюсь что вы глазами среди 100 писем увидите ошибку…

ВОзможно вам подойдет такой продукт как
https://www.autoitscript.com/site/
Либо же есть winautomation - но он немного платный.

AD0DE412
https://pypi.org/search/?q=Outlook&page=1
py.user.next
joneb1983
Все желание отбило учить Python
Сейчас пропаганда идёт про то, что программирование стало простым. Это ложь. Оно не стало простым. Каким сложным оно было, таким сложным оно и осталось. Появилось только больше материалов для обучения. Откуда пропаганда тогда и зачем? Просто люди открыли школы программирования, чтобы собирать деньги с учеников, которые придут к ним. После этого они запустили рекламу своих школ, которая людей, знающих, что программирование - это сложно, старается переубедить и внушить им, что программирование типа упростилось и поэтому они могут приходить в эти школы и пробовать себя в программировании. Ну, и они обещают этим ученикам обучение программированию за год. То есть их расчёт идёт на то, что ученик придёт и будет год ждать результатов у себя, проходя их курсы какие-то, похожие на обучение программированию. Вот так вот они циклически ищут этих учеников и ученики эти отваливаются через полгода, год, полтора. Поищи учеников, которые что-то сделали после этих школ, - ты не найдёшь ни одного. Тебе с какого-то чайника сказали, что Python - это просто, и ты с этой лапшой на ушах пришёл сюда, потому что питон здесь. А они расчитывали, что ты придёшь туда и подаришь им деньги, а они будут тебе лапшу и дальше на уши вешать, чтобы ты и дальше платил, пока ты что-то не заподозришь. Вот так это устроено.

joneb1983
Может есть другой язык на котором можно реализовать это десктопное приложение хотя бы за 1 год, может Java?
На Java лет семь уйдёт, чтобы эту программу написать. Потому что три года ты будешь разбираться с Java. Java очень сложный, и он для профессионалов, которые уже всё знают, а не только-только вот учиться начали. В самом начале, когда были профессионалы, они были процедурниками, структурниками и стали становиться оопэшниками, но языка у них не было для этого, вот они язык для этого придумали и написали. Вот так он появился. При этом он не расчитан на новичков, там сопли никто подтирать не будет. Вот там когда что-то ломается, ты даже понять ничего не можешь. Он не подсказывает тебе “сделай то, сделай это”, он просто тебе пишет “сломалось то-то” и всё. Поэтому там надо всё знать уже про то, что могло сломаться и почему оно могло сломаться. Новичок там будет в ступоре постоянно.

Питон же, наоборот, - такой игрушечный язык, для обучения школьников там он его делал изначально, язык экспериментов, минимизированный по синтаксису и по необходимостям всяким. Но он вырос из этого в полноценный язык со временем. А из-за его простоты он получил широкое распространение, потому что его ставить просто, его запускать просто, для него можно вообще файлы не создавать с исходным кодом, потому что там консоль только запускаешь и уже можешь всё делать. Поэтому на питон заходить легко. Там всё работает сходу. В Java же ты будешь день сидеть только и думать 1) “а как бы эту программу написать, которая просто строку на экран выводит?” и 2) “а как бы эту программу, которую я вот наконец-то написал, теперь запустить, чтобы она могла выполняться?”. И так с каждым вопросом там, а вопросов там сотни.

joneb1983
Можно конечно попросить программиста за деньги это сделать
Ты знаешь, это плохая идея. Я вот лет двадцать назад сидел в эхе одной, не фидошной, но что-то типа этого, сейчас их нет уже. И там один парень писал всем регулярки для разбора писем почтовых. Вот мы смотрели на него, он был как маг какой-то. Никто не мог эти регулярки писать, а он один их писал и все его благодарили, на коленях перед ним ползали. Он всем говорил при этом “пишите регулярки, ребята, они очень удобные”. Но когда его спрашивали “а как ты пишешь регулярки, как ты научился?”, потому что все от него одного зависели и хотели сами научиться, чтобы не зависеть, он им отвечал “да я просто сам научился, даже не знаю, как”. То есть он хотел цепануть людей, чтобы они у него стали заказывать платную работу. Он их не учил, а постоянно демонстрировал им, что он может это делать, а они не могут. Это называется “я знаю, как делать, а вам не скажу”. И вот никто у него не заказывал их, хотя он ждал этого. Потому что деньги на эту ерунду тратить никто не хотел, она как бы не завершённая, а лишь кусок чего-то, зачем на неё тратить? Так вот сейчас я смотрю на его регулярки те (я их просто вспоминаю, их уже нет даже в файлах) и вижу, какое это дерьмо было по своей сути, я вижу, что он нихера не умел делать, я понимаю, что не стоило и копейки тратить на это, что и происходило со стороны всех, кто там был. Так вот, не надо ничего заказывать; тебе напишут говно какое-нибудь и ты даже не поймёшь этого, потому что по своему уровню ты даже не дорос до этого понимания. На данном этапе ты просто не увидишь, что говно - это говно. Ты просто не поймёшь, что тебе написали, тебя наколят, продадут лажу. Будешь, как папуас, с зеркальцем радостный бегать, отдав золотой посох за него.

joneb1983
Хотелось бы чтобы это выглядело нормальным образом в виде приложения, что бы могли пользоваться другие коллеги.
До других коллег ты дойдёшь лет через десять только. Если ты себе программу написать не можешь, то другим ты и подавно не сможешь. А чтобы они купили у тебя программу, нужно 1) чтобы она им была очень-очень-очень нужна и 2) чтобы ты им продавал её раз в десять дешевле, чем она стоит на рынке программного обеспечения. Сможешь ли ты такую программу написать? Это можно сделать, только когда ты изготавливаешь её из своих уже написанных программ, которые писать не надо уже, они уже написаны. При таком раскладе ты сможешь написать хорошую и мощную программу и продавать её по своей цене, которая значительно ниже рыночной. Иначе либо она не нужна будет им, потому что в ней нет никаких функций полезных, либо они у тебя её не купят, потому что ты поставишь слишком высокую цену, так как сам потратился сильно на её изготовление и просто не можешь выставить цену меньше той, которую сам потратил.

Так что снимай розовые очки и начинай с нуля.

joneb1983
но интересно самому, так как работаю в IT на
первой линии поддержки и давно задумываюсь об изучении программирования
Напиши программу hello world.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB