как через python запустить другое приложение

Как запускать внешние процессы, используя Python и модуль subprocess

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

Прочитав статью, вы узнаете как:

Так как модуль subprocess почти всегда используют с Linux все примеры будут касаться Ubuntu. Для пользователей Windows советую скачать терминал Ubuntu 18.04 LTS.

Функция «run»

Вывод внешней команды ls отображается на экране:

Захват вывода команды: stdout и stderr

Что, если мы не хотим, чтобы вывод процесса отображался на экране. Вместо этого, нужно чтобы он сохранялся: на него можно было ссылаться после выхода из процесса? В этом случае нам стоит установить для аргумента функции capture_output значение True :

Управление сбоями процесса

Мы можем узнать, не завершился ли запущенный процесс ошибкой, проверив его код возврата, который хранится в свойстве returncode объекта CompletedProcess :

Обработка исключений в Python довольно проста. Поэтому для управления сбоями процесса мы могли бы написать что-то вроде:

Выполнение процесса в оболочке

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

Ограничение времени работы процесса

Функции call, check_output и check_call

Прежде всего, функция call : она используется для выполнения команды, описанной параметром args; она ожидает завершения команды; ее результатом является соответствующий код возврата. Это примерно соответствует базовому использованию функции run.

Работа на более низком уровне с классом Popen

Предположим, например, что мы хотим соединить два процесса, воссоздав поведение конвейера (pipe) оболочки. Как мы знаем, когда передаем две команды в оболочку, стандартный вывод той, что находится слева от пайпа «|», используется как стандартный ввод той, которая находится справа. В приведенном ниже примере результат выполнения двух связанных конвейером команд сохраняется в переменной:

Источник

Как использовать субпроцесс для запуска внешних программ в Python 3

Published on September 11, 2020

Автор выбрал COVID-19 Relief Fund для получения пожертвования в рамках программы Write for DOnations.

Введение

Python 3 включает модуль subprocess для запуска внешних программ и чтения их выводов в коде Python.

Предварительные требования

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

Запуск внешней программы

Теперь вы можете использовать функцию subprocess.run для запуска внешней программы с кода Python. Прежде всего необходимо импортировать в программу модули subprocess и sys :

Если вы запустите их, вы увидите следующий вывод:

Рассмотрим этот пример:

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

Захват вывода внешней программы

Дополним наш предыдущий пример:

Если запустить этот код, результат будет выглядеть следующим образом:

Рассмотрим пример, где значение stderr не пустое:

Если запустить этот код, вывод будет выглядеть следующим образом:

Создание исключения при коде ошибки выхода

Если запустить этот код, вывод будет выглядеть следующим образом:

Этот вывод показывает, что мы запустили субпроцесс, выдавший ошибку, которая выводится в stderr на нашем терминале. Затем subprocess.run добросовестно выдал ошибку subprocess.CalledProcessError от нашего имени в нашей основной программе Python.

Если мы запустим этот код, мы получим:

Использование timeout для раннего выхода из программ

Если запустить этот код, результат будет выглядеть следующим образом:

Обратите внимание, что аргумент ключевого слова timeout для subprocess.run является приблизительным. Python постарается остановить субпроцесс после заданного в аргументе timeout количества секунд, но это не обязательно будет точным.

Передача ввода в программы

Аргумент ключевого слова input для subprocess.run позволяет передавать данные в stdin субпроцесса. Например:

Запустив этот код, мы получим примерно следующий вывод:

Аргумент ключевого слова input может быть полезен, если вы хотите создать цепочку из нескольких вызовов subprocess.run с передачей вывода одной программы как ввода в другую программу.

Заключение

Модуль subprocess — это мощный компонент стандартной библиотеки Python, позволяющий легко запускать внешние программы и просматривать их вывод. В этом обучающем модуле вы научились использовать subprocess.run для управления внешними программами, передачи ввода в эти программы, анализа их вывода и проверки возвращаемых ими кодов.

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

Источник

Запуск Python и python-скрипт на компьютере

Код, написанный на языке Python, может храниться в редакторе кода, IDE или файле. И он не будет работать, если не знать, как его правильно запускать.

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

Где запускать Python-скрипты и как?

Python-код можно запустить одним из следующих способов:

Запуск Python-кода интерактивно

Для запуска интерактивной сессии нужно просто открыть терминал или командную строку и ввести python (или python3 в зависимости от версии). После нажатия Enter запустится интерактивный режим.

Вот как запустить интерактивный режим в разных ОС.

Интерактивный режим в Linux

Откройте терминал. Он должен выглядеть приблизительно вот так :

как через python запустить другое приложение

После нажатия Enter будет запущен интерактивный режим Python.

Интерактивный режим в macOS

На устройствах с macOS все работает похожим образом. Изображение ниже демонстрирует интерактивный режим в этой ОС.

как через python запустить другое приложение

Интерактивный режим в Windows

как через python запустить другое приложение

Запуск Python-скриптов в интерактивном режиме

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

как через python запустить другое приложение

Для выхода из интерактивного режима нужно написать следующее:

И нажать Enter. Вы вернетесь в терминал, из которого и начинали.

Есть и другие способы остановки работы с интерактивным режимом Python. В Linux нужно нажать Ctrl + D, а в Windows — Ctrl + Z + Enter.

Стоит отметить, что при использовании этого режима Python-скрипты не сохраняются в локальный файл.

Как выполняются Python-скрипты?

Отличный способ представить, что происходит при выполнении Python-скрипта, — использовать диаграмму ниже. Этот блок представляет собой скрипт (или функцию) Python, а каждый внутренний блок — строка кода.

При запуске скрипта интерпретатор Python проходит сверху вниз, выполняя каждую из них. Именно таким образом происходит выполнение кода.

Но и это еще не все.

Блок-схема выполнения кода интерпретатором

Это набор инструкций, которые приводят к финальному результату.

Иногда полезно изучать байткод. Если вы планируете стать опытным Python-программистом, то важно уметь понимать его для написания качественного кода.

Это также пригодится для принятия решений в процессе. Можно обратить внимание на отдельные факторы и понять, почему определенные функции/структуры данных работают быстрее остальных.

Как запускать Python-скрипты?

Для запуска Python-скрипта с помощью командной строки сначала нужно сохранить код в локальный файл.

Возьмем в качестве примера файл, который был сохранен как python_script.py. Сохранить его можно вот так:

Сохранить скрипт в текстовом редакторе достаточно легко. Процесс ничем не отличается от сохранения простого текстового файла.

Но если использовать командную строку, то здесь нужны дополнительные шаги. Во-первых, в самом терминале нужно перейти в директорию, где должен быть сохранен файл. Оказавшись в нужной папке, следует выполнить следующую команду (на linux):

После нажатия Enter откроется интерфейс командной строки, который выглядит приблизительно следующим образом:

как через python запустить другое приложение

Теперь можно писать код и с легкостью сохранять его прямо в командной строке.

Как запускать скрипт в командной строке?

Источник

Python. Урок 2. Запуск программ на Python

В этом уроке мы рассмотрим два основных подхода к работе с интерпретатором Python – это непосредственная интерпретация строк кода, вводимых с клавиатуры в интерактивном режиме и выполенение файлов с исходным кодом в пакетном режиме. Также коснемся некоторых особенностей работы с Python в Linux и MS Windows.

Язык Python – это интерпретируемый язык. Это означает, что помимо непосредственно самой программы, вам необходим специальный инструмент для её запуска. Напомню, что существуют компилируемые и интерпретируемые языки программирования. В первом случае, программа с языка высокого уровня переводится в машинный код для конкретной платформы. В дальнейшем, среди пользователей, она, как правило, распространяется в виде бинарного файла. Для запуска такой программы не нужны дополнительные программные средства (за исключением необходимых библиотек, но эти тонкости выходят за рамки нашего обсуждения). Самыми распространенными языками такого типа являются C++ и C. Программы на интерпретируемых языках, выполняются интерпретатором и распоространяются в виде исходного кода. На сегодняшний день, среди интерпретируемых языков наиболее популярным является Python.

Если вы еще не установили интерпретатор Python, то самое время это сделать. Подробно об этом написано здесь.

Python может работать в двух режимах:

В интерактивный режим можно войти, набрав в командной строке

В результате Python запустится в интерактивном режиме и будет ожидать ввод команд пользователя.

как через python запустить другое приложение

Если же у вас есть файл с исходным кодом на Python, и вы его хотите запустить, то для этого нужно в командной строке вызвать интерпретатор Python и в качестве аргумента передать ваш файл. Например, для файла с именем test.py процедура запуска будет выглядеть так:

Интерактивный режим

Откройте Python в интерактивном режиме и наберите в нем следующее:

В ответ на это интерпретатор выполнит данную строку и отобразит строкой ниже результат своей работы.

как через python запустить другое приложение

Python можно использовать как калькулятор для различных вычислений, а если дополнительно подключить необходимые математические библиотеки, то по своим возможностям он становится практически равным таким пакетам как Matlab, Octave и т.п.

Различные примеры вычислений приведены ниже. Более подробно об арифметических операциях будет рассказано в следующих уроках.

как через python запустить другое приложение

Для выхода из интерактивного режима, наберите команду

В комплекте вместе с интерпретатором Python идет IDLE (интегрированная среда разработки). По своей сути она подобна интерпретатору, запущенному в интерактивном режиме с расширенным набором возможностей (подсветка синтаксиса, просмотр объектов, отладка и т.п.).

Для запуска IDLE в Windows необходимо перейти в папку Python в меню “Пуск” и найти там ярлык с именем “IDLE (Python 3.5 XX-bit)”.

как через python запустить другое приложение

В Linux оболочка IDLE по умолчанию отсутствует, поэтому ее предварительно нужно установить. Для этого, если у вас Ubuntu, введите в командной строке (для Python 3.4):

В результате IDLE будет установлен на ваш компьютер.

Для запуска оболочки, введите:

Ниже представлен внешний вид IDLE в ОС Linux.

как через python запустить другое приложение

Пакетный режим

Теперь запустим Python в режиме интерпретации файлов с исходным кодом (пакетный режим). Создайте файл с именем test.py, откройте его с помощью любого текстового редактора и введите следующий код:

Пример работы программы приведен в окне ниже.

как через python запустить другое приложение

Резюме

Для запуска Python в интерактивном режиме необходимо набрать в командной строке имя исполняемого файла интерпретатора (python или python3) или запустить IDLE (интегрированную среду разработки).

Для запуска Python в пакетном режиме введите в командной строке имя интерпретатора и имя файла с программой на языке Python через пробел:

P.S.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
как через python запустить другое приложение
>>

Python. Урок 2. Запуск программ на Python : 25 комментариев

После python test.py этого у меня программа стоит и ничего не делает.
Hello World вывел, а это нет.

Если в файле у вас:
a = int(input())
print(a**2)
то после запуска, вам нужно ввести число, которое потом будет возведено в квадрат.

Эту программу для начала нужно создать, открывает программу которую ты напишешь 🙂

хрен что работает. ни одна программа не запустилась! Ни одна! в любом случае какая-то ошибка! версия питона 3.6.7
>>> print(“Hello, World!”)
File “”, line 1
print(“Hello, World!”)
^
SyntaxError: invalid character in identifier

Там проблема с кавычками была, они отрендерились несколько странно) Сейчас поменяли!
С остальными проблем не должно быть (в данном уроке))

Здравствуйте. В pycharm создал pyhton file с кодом print (“Hello, world”). Всё работает. Но пытался открыть файл через python в командной строке и пишет “python: can’t open file ‘Boyyy1.py’: [Errno 2] No such file or directory”. Скорее всего я неправильно файл создал. Можете помочь?

Если через командную строку запускаете, то вы должны находиться в каталоге, в котором лежит ваш Boyyy1.py, иначе нужно полный (или относительный) путь до файла указывать.

Мне не помог полный путь, очень актуальна проблема путей ведь хрен знает в каком каталоге находиться python, да ещё и зарытый между папок, неудобно.

Полный путь указываю, а он меня так посылает 🙁 C:\Users\Оксана\AppData\Local\Programs\Python\Python38-32\test.py SyntaxError: unexpected character after line continuation character
И сохранённые файлы не открывает ни в интерактивном, не в пакетном режиме. Открытие идет и тут же сворачивается.

Да же херня и у меня

Может, лучше такую программу:

print(“Enter a number=”)
a = int(input())
print(“get this number squered=”)
print(a**2)
#Она хоть говорить будет…

Полезно, кардинально отличается. Столько работ по улучшению!

a = int(input(‘enter a number=’))
print(‘get this number squered=’ + str(a**2))
#как тебе такое

Yevgeny, или так:
a=int(input(‘Enter a number=’))
print (‘get this number squered=’ + str(a**2))

В командной строке перешел на папку где лежит исполняемый файл и набрал python hello.py. Вот что выдало:

C:\MyScripts> python hello.py
File “hello.py”, line 1
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32
^
SyntaxError: invalid syntax

Набрал код:
Print(123)
Ввожу в командную строку >python test.ry
командная строка пишет слово Python и всё. Помомгите

привет Игнат, я не программист, только начинаю учиться )
у тебя расширение файла неверное записано: надо test.py, а ты пишешь test.ry

Привет, начинающий программист. А ты не в курсе, почему в PyCharm все работает, в Gitbash файл видит, через саt содержимое выдает. А пишешь в Gitbash python3 имяфайла.py и жмешь ввод.А оно прыгает на следующую строку и пишет Python и все, больше ничего! Вторые сутки дрюкаюсь впустую((

Если у меня Windows XP, то использовать отладчик не светит?

Источник

Как запустить программу Python – 4 простых способа

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

Что такое интерпретатор в Python?

Интерпретатор в Python – это часть программного обеспечения, которое взаимосвязано работает между программой Python и компьютерным оборудованием.

Здесь мы описываем серию способов запуска скриптов Python.

Командная строка операционной системы или терминал

как через python запустить другое приложение

Мы пишем оператор печати Python и сохраняем его как sample.py в рабочем каталоге. Теперь мы запустим этот файл из командной строки.

Откройте командную строку, чтобы запустить скрипт Python. Нам нужно ввести python, а затем имя файла для выполнения файла. Теперь нажмите клавишу ввода, и если в файле нет ошибки, мы увидим следующий результат.

как через python запустить другое приложение

Интерактивный режим Python

Чтобы запустить код Python, мы можем использовать интерактивный сеанс Python. Для запуска интерактивного сеанса Python, просто откройте командную строку или терминал в меню «Пуск», затем введите python и нажмите клавишу ввода.

Вот пример того, как запустить код Python с помощью интерактивной оболочки.

как через python запустить другое приложение

Это позволяет нам проверять каждый фрагмент кода, и это средство делает его отличным инструментом разработки. Но как только мы закроем сеанс, он потеряет весь написанный нами код.

Ниже приведены варианты выхода из интерактивного режима.

IDE или текстовый редактор

IDE означает интегрированную среду разработки. Существуют различные IDE, но Pycharm – самый популярный и полезный текстовый редактор Python среди них. Рекомендуется для разработки больших и более сложных приложений. Здесь используется Pycharm для запуска скрипта Python.

как через python запустить другое приложение

Теперь нажмите зеленую кнопку, и результат отобразится следующим образом.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *