Подтвердить что ты не робот

Python, PowerShell или другое?

В чем преимущества Python, PowerShell и других сценариев? Мы хотели бы стандартизировать наши скрипты и в настоящее время используем bat и cmd файлы в качестве стандарта. Я думаю, что Python будет лучшим вариантом, чем эти, но я также изучаю PowerShell и другие инструменты для создания сценариев.

Сценарии будут использоваться для запуска таких процессов, как wget и т.д., для вызова веб-служб или других приложений/инструментов, которые должны выполняться в определенном порядке с определенными параметрами.

Мы в первую очередь работаем с стеком Windows, но есть хорошие шансы, что нам нужно будет поддерживать Unix в будущем.

Спасибо.

4b9b3361

Ответ 1

IronPython имеет доступ ко всем тем же сборкам .NET, что и любой другой язык .NET для написания сценариев, зависящих от системы, в Windows. Но то же знание Python можно использовать для написания подобных скриптов в Linux, Solaris, BSD или OS/X. Если вы используете стандартный C Python в Windows, вы можете получить доступ к любым COM-объектам, и просто перевести примеры VBA в код Python. Плагин SPAMBayes Outlook является хорошим примером того, как далеко вы можете пойти с этим. http://spambayes.sourceforge.net/

Лучшая функция Python - это стандартная библиотека с батарейными батареями, и хотя это не распространяется на IronPython, большая часть ее будет работать, если вы просто укажете IronPython на установленную библиотечную папку из CPython. Фактически, большинство чистых библиотек Python, т.е. Не скомпилированных модулей C или С++, отлично работают с IronPython. В Windows у вас также есть выбор установки Python через Cygwin.com, который затем позволяет вам использовать множество модулей, которые обычно считаются только UNIX. Это может быть полезно, если вам необходимо поддерживать межплатформенные скрипты, и вы предпочитаете согласованность, а не кодировку для каждого ОС.

И если вам нужно будет использовать некоторые Java-классы, то Jython позволяет использовать тот же язык Python, который вы знаете, чтобы использовать это. Объедините это с хорошей системой очередности сообщений, такой как RabbitMQ, и вы можете иметь скрипты Python, Jython и IronPython на нескольких компьютерах, которые все взаимодействуют в выполнении работы.

Существует также огромный выбор сторонних модулей Python, и вы можете потратить несколько месяцев на трафик через delicious.com, прежде чем закончите новые открытия. Это означает, что, когда вам нужно что-то, что не входит в стандартные библиотеки Python, немного Googling часто приходит с решением.

Некоторые полезные модули Python для скриптов для замены файлов bash, CMD и BAT PEXPECT http://www.noah.org/wiki/Pexpect и Python WMI http://timgolden.me.uk/python/wmi/index.html

Но, в конце концов, Python также отлично подходит для простых простых скриптов, которые не нуждаются в каких-либо специальных функциях... еще!

Ответ 2

Python работает как отличный универсальный инструмент, если вы хотите заменить сценарии CMD и BAT на свои окна Windows, а также можете писать для запуска скриптов в ваших (L) inux-блоках. Это отличный, гибкий язык и может справиться со многими задачами, которые вы бросаете на него.

Говоря это, Powershell - это удивительно универсальный инструмент для администрирования всех окон Windows; он обладает всеми возможностями .NET, с большим количеством интерфейсов в продуктах MS, таких как Exchange и Active Directory, которые являются временными. В зависимости от вашей ситуации вы можете больше использовать PS, чем другие языки сценариев, только из-за интерфейсов, доступных для продуктов MS, и я знаю, что MS, похоже, взяла на себя обязательство предоставить эти API в большом количестве продуктов. Powershell устанавливается на все текущие версии Windows (Windows 7+, Windows Server 2008+) и довольно легко устанавливается в старых версиях.

Чтобы обратиться к вашему правлению, чтобы ваши сценарии использовались для запуска других процессов, я думаю, что в этом случае любой из инструментов соответствует счету. Я бы порекомендовал PS, если вы планируете добавлять какие-либо административные задачи к сценариям, а не только к вызовам службы, но если вы придерживаетесь того, что вы описали, Python хорош.

Ответ 3

Мы хотели бы стандартизировать наши скрипты и в настоящее время используем bat и cmd файлы в качестве стандарта.

Похоже, что Windows - это ваша преобладающая среда.

Если это так, PowerShell будет намного лучше, чем Python.

  • PowerShell включен в Windows Server 2008. Нет необходимости развертывание/установка Python каждый новый сервер, который загружается.
  • Все программное обеспечение, связанное с сервером Microsoft (Exchange, Systems Center и т.д.), переходит к командлетам PowerShell для функций и расширений
  • Сторонние поставщики (например, плагины SCOM) также будут использовать сценарии/командлеты PowerShell для раскрытия функциональности

У меня больше опыта работы с Python, чем с PowerShell, но на стене написано, что касается экосистемы Microsoft: зайдите в PowerShell. В противном случае вы просто будете идти против зерна и постоянно взаимодействовать между командлетами Python и всех остальных.

Просто потому, что вы можете закодировать import win32com.client в Python, не ставить его на равных с PowerShell в среде Windows.

Ответ 4

Если все, что вы делаете, порождает множество программ, специфичных для системы, без какой-либо или небольшой логики программирования, тогда конкретная оболочка ОС может быть лучшим выбором, чем полный язык программирования общего назначения.

Ответ 5

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

Мы также используем его для очистки XML и HTML, используя ElementTree и BeautifulSoup, которые представляют собой очень мощные и гибкие библиотеки, специфичные для Python, для такого рода работ.

Ответ 6

Я нахожу это печальным, что никто еще не упомянул о хорошем оль Перле.

Ответ 7

Вопросы немного расплывчаты, но Python гораздо более переносим, ​​чем PowerShell; однако Python не распространен на Windows. Но, с другой стороны, я не считаю, что сценарии PowerShell будут работать на компьютере под управлением Windows, у которого нет PowerShell. Это означает, что они могут не работать в старой модели CMD-оболочки. Я думаю, вы найдете больше документации и библиотек для Python.

Powershell больше похож на Bash, чем на язык программирования, такой как Python.

Может быть, вы могли бы объяснить, что хотите делать со своими сценариями, и вы, вероятно, получите лучшие ответы.

Ответ 8

Если вы работаете с веб-скриптами, то ActiveState ActivePython, как представляется, имеет большую поддержку API, специфичный для Windows, который вам подойдет и у него есть множество замечательных портативных библиотек для работы в Интернете.