Как запустить питон в командной строке виндовс
Содержание:
- Получение параметров без использования argparse
- У вас есть доступ к командной строке или PowerShell?
- Модуль getopt
- 5 ответов
- Модуль sys
- Запуск программ
- Настройка под Python
- ❖ Метод 1: Использование пути
- Приложение, необходимое для планирования
- Использование модуля argparse
- Сравнения
- Циклы
- Настройка Pi для запуска скриптов Python
- Создание исключения при коде ошибки выхода
Получение параметров без использования argparse
Например, мы хотим написать программу после запуска выводящую в консоль «Привет <переданное_имя>». Имя мы будем передавать через параметр в командной строке, далее его нужно получить в нашей программе. Как это сделать?
Мы можем сделать это используя стандартный модуль sys и его переменную argv, она содержит список переданных параметров (нулевой элемент списка содержит имя нашего скрипта).
Другими словами, чтобы вывести имя, которое мы передаем аргументом, необходимо обратиться к sys.argv:
Сохраним код в файле hello.py и запустим его с параметром «Александр» (аргументом):
Получаем ожидаемое:
Но если попытаться запустить скрипт без параметра, то получаем ошибку поскольку в списке нет элемента с индексом 1. Исправим это сделав проверку на наличии передаваемого параметра и если он не передается, будет выводиться «Привет мир!»
Теперь немного усложним задачу, что если мы хотим передавать имя с помощью именованного параметра —name, доработаем наш код:
Запустив скрипт таким образом:
Получаем нужный результат, если в место «—name» передать другое значение, то получаем предупреждение.
Но, если мы передадим один параметр вместо двух, то скрипт не запуститься, нам необходимо добавить еще один if для проверки существование минимум двух параметров.
А если нам нужно добавить еще несколько параметров, а если не все из них обязательные… короче код начнется превращаться в ужас, вот здесь нам на помощь и придет модуль argparse стандартной питоновской библиотеки.
У вас есть доступ к командной строке или PowerShell?
Чтобы получить путь установки Python под Windows, используя командную строку или PowerShell, вы можете упаковать код Python в краткую и простую в копировальную команду одноклассника:
python -c "import os, sys; print(os.path.dirname(sys.executable))"
Если Python регулярно устанавливается, вы можете запустить Команда из любого каталога в вашем PowerShell, который делает его очень удобным.
В качестве альтернативы вы можете проверить путь установки Python в вашей командной строке Windows, используя команду «Простая двухкомнатная команда» “. Вот как это работает на моей машине Windows:
where python
Это дает мне следующий вывод:
C:\Users\xcent\AppData\Local\Microsoft\WindowsApps\python.exe
Далее вы узнаете дополнительный трюк, который позволяет вам проверить путь установки Python без доступа к интерпретатору Python или командную строку Windows.
Но прежде чем мы будем двигаться дальше, я рад представить вам мою новую книгу Python Python One-listers (Amazon Link).
Если вам нравятся одноклассники, вы будете любить книгу. Это научит вам все, что нужно знать о Одно строка кода Python. Но это тоже Введение в компьютерную науку , наука о данных, машин обучения и алгоритмы. Вселенная в одной строке Python!
Книга была выпущена в 2020 году с помощью книги по программированию мирового класса Nostarch Press (San Francisco).
Ссылка: https://nostarch.com/pythononeliners.
Модуль getopt
Как вы могли заметить ранее, модуль sys разбивает строку командной строки только на отдельные фасеты. Модуль getopt в Python идет немного дальше и расширяет разделение входной строки проверкой параметров. Основанный на функции C getopt, он позволяет использовать как короткие, так и длинные варианты, включая присвоение значений.
На практике для правильной обработки входных данных требуется модуль sys. Для этого необходимо заранее загрузить как модуль sys, так и модуль getopt. Затем из списка входных параметров мы удаляем первый элемент списка (см. код ниже) и сохраняем оставшийся список аргументов командной строки в переменной с именем arguments_list.
# Include standard modules import getopt, sys # Get full command-line arguments full_cmd_arguments = sys.argv # Keep all but the first argument_list = full_cmd_arguments print argument_list
Аргументы в списке аргументов теперь можно анализировать с помощью метода getopts(). Но перед этим нам нужно сообщить getopts() о том, какие параметры допустимы. Они определены так:
short_options = "ho:v" long_options =
Это означает, что эти аргументы мы считаем действительными, а также некоторую дополнительную информацию:
------------------------------------------ long argument short argument with value ------------------------------------------ --help -h no --output -o yes --verbose -v no ------------------------------------------
Вы могли заметить, что после опции o short ставится двоеточие (:). Это сообщает getopt, что этой опции следует присвоить значение.
Теперь это позволяет нам обрабатывать список аргументов. Для метода getopt() необходимо настроить три параметра – список фактических аргументов из argv, а также допустимые короткие и длинные параметры (показаны в предыдущем фрагменте кода).
Сам вызов метода хранится в инструкции try-catch, чтобы скрыть ошибки во время оценки. Исключение возникает, если обнаруживается аргумент, который не является частью списка, как определено ранее. Скрипт в Python выведет сообщение об ошибке на экран и выйдет с кодом ошибки 2.
try: arguments, values = getopt.getopt(argument_list, short_options, long_options) except getopt.error as err: # Output error, and return with an error code print (str(err)) sys.exit(2)
Наконец, аргументы с соответствующими значениями сохраняются в двух переменных с именами arguments и values. Теперь вы можете легко оценить эти переменные в своем коде. Мы можем использовать цикл for для перебора списка распознанных аргументов, одна запись за другой.
# Evaluate given options for current_argument, current_value in arguments: if current_argument in ("-v", "--verbose"): print ("Enabling verbose mode") elif current_argument in ("-h", "--help"): print ("Displaying help") elif current_argument in ("-o", "--output"): print (("Enabling special output mode (%s)") % (current_value))
Ниже вы можете увидеть результат выполнения этого кода. Мы покажем, как программа реагирует как на допустимые, так и на недопустимые программные аргументы:
$ python arguments-getopt.py -h Displaying help $ python arguments-getopt.py --help Displaying help $ python arguments-getopt.py --output=green --help -v Enabling special output mode (green) Displaying help Enabling verbose mode $ python arguments-getopt.py -verbose option -e not recognized
Последний вызов нашей программы поначалу может показаться немного запутанным. Чтобы понять это, вам нужно знать, что сокращенные параметры (иногда также называемые флагами) могут использоваться вместе с одним тире. Это позволяет вашему инструменту легче воспринимать множество вариантов. Например, вызов аргументов arguments-getopt.py-vh аналогичен вызову аргументов arguments-getopt.py-v-h. Таким образом, в последнем вызове выше модуль getopt подумал, что пользователь пытается передать -e в качестве опции, что недопустимо.
5 ответов
Лучший ответ
Как видите, у меня установлены как Python2, так и Python3.
Я надеюсь, вы знаете, что путь к исполняемому файлу python должен быть добавлен в переменную окружения PATH в Windows. Как вы можете видеть, путь Python2 находится выше пути Python3 в моей системе.
Как команды запускают команды? Он ищет исполняемый файл с тем же именем в каталоге, в котором был открыт cmd, затем выполняет поиск команды в местах, указанных в переменной PATH Windows, от TOP до BOTTOM. Это означает, что он получает путь к Python2, прежде чем он сможет добраться до пути Python3. Поэтому каждый раз, когда вы вводите в свой cmd, он запускает Python2. Исполняемые файлы Python2 и Python3 имеют одинаковое имя в Windows, поэтому он никогда не запускает python3.
Что кажется очевидным решением? Вы можете подумать, что изменение имени на для исполняемого файла Python3 решит вашу проблему. Вы частично правы, это сработает. Но вы должны использовать или , что, я думаю, понятно. Но pip больше не будет работать, если вы измените имя исходного исполняемого файла python. Вы больше не сможете устанавливать внешние пакеты и модули.
Как решить эту проблему? Вы можете создать псевдоним для исполняемого файла Python3 с именем . Файлы и можно вызывать из cmd напрямую, без использования их расширения. Мы всегда пишем вместо , хотя оба они верны. То же самое можно сделать с файлами
Вернитесь к первому изображению и обратите внимание на файл ниже. Это мой способ вызова python3 без переименования моего исходного исполняемого файла python
python3.bat Создайте новый файл с помощью блокнота или чего-то еще и вставьте этот Я не совсем понимаю, как это работает, за исключением того, что в основном запускает python из той же директории и передает все аргументы в исполняемый файл python. Поместите этот файл в каталог установки Python3, и, надеюсь, ваша проблема будет решена.
В основном python3 запускает ваш файл , который, в свою очередь, запускает из своей папки и передает ему аргументы.
Надеюсь, это решит вашу проблему.
5
Diptangsu Goswami
15 Май 2018 в 12:11
-
Если Anaconda 3 — единственный интерпретатор python3 в системе, вы можете запустить вместо в командной строке, и он должен работать.
-
Вы можете изменить параметр , инвертируя позиции обоих интерпретаторов.
Shubham
15 Май 2018 в 11:37
Вы должны иметь также на вашем пути. Вы можете использовать для запуска вашего скрипта:
Но чтобы ответить на ваш вопрос, вы можете использовать и обновить его как .
2
akshat
15 Май 2018 в 11:28
Для запуска вашего скрипта с Python 3 вы можете использовать
П.С .: Это должен быть комментарий, но у меня нет необходимой репутации. 🙂
Silviu
15 Май 2018 в 11:26
Если вы хотите запустить Python 3.6, выполните . В противном случае проверьте с , где находится символическая ссылка на фактический исполняемый файл python. В моей системе это
И когда я , это дает
Если вы действительно уверены, что хотите это сделать, теперь вы можете просто переместить старую символическую ссылку куда-нибудь:
И создайте новую символическую ссылку:
Теперь вы должны получить что-то вроде:
Я не гарантирую, что это не сломает все в мире, особенно если у вас есть какой-то дистрибутив, у которого есть менеджер пакетов, который полагается на определенную версию Python в .
Похоже, это хорошо работает на Linux Mint 18.
Andrey Tyukin
17 Май 2018 в 15:22
Модуль sys
Это базовый модуль, который с самого начала поставлялся с Python. Он использует подход, очень похожий на библиотеку C, с использованием argc и argv для доступа к аргументам. Модуль sys реализует аргументы командной строки в простой структуре списка с именем sys.argv.
Каждый элемент списка представляет собой единственный аргумент. Первый элемент в списке sys.argv – это имя скрипта Python. Остальные элементы списка, от sys.argv до sys.argv , являются аргументами командной строки с 2 по n. В качестве разделителя между аргументами используется пробел. Значения аргументов, содержащие пробел, должны быть заключены в кавычки, чтобы их правильно проанализировал sys.
Эквивалент argc – это просто количество элементов в списке. Чтобы получить это значение, используйте оператор len(). Позже мы покажем это на примере кода.
Печать первого аргумента CLI
В этом первом примере наш сценарий определит способ его вызова. Эта информация хранится в первом аргументе командной строки с индексом 0. В приведенном ниже коде показано, как получить имя сценария в Python.
import sys print ("The script has the name %s" % (sys.argv)
Сохраните этот код в файле с именем arguments-program-name.py, а затем вызовите его, как показано ниже. Результат выглядит следующим образом и содержит имя файла, включая его полный путь:
$ python arguments-program-name.py The script has the name arguments-program-name.py $ python /home/user/arguments-program-name.py The script has the name /home/user/arguments-program-name.py
Как видно из второго вызова выше, мы получаем не только имя файла Python, но и полный путь, использованный для его вызова.
Подсчет количества аргументов
Во втором примере мы просто подсчитываем количество аргументов командной строки с помощью встроенного метода len(). sys.argv – это список, который мы должны изучить. В приведенном ниже коде мы получаем количество аргументов и затем вычитаем 1, потому что один из этих аргументов (т.е. первый) всегда устанавливается как имя файла, что не всегда полезно для нас. Таким образом, фактическое количество аргументов, переданных пользователем, равно len (sys.argv) – 1.
import sys # Count the arguments arguments = len(sys.argv) - 1 print ("The script is called with %i arguments" % (arguments))
Сохраните и назовите этот файл arguments-count.py. Ниже приведены некоторые примеры вызова этого сценария. Это включает три разных сценария:
- Вызов без дополнительных аргументов командной строки.
- Вызов с двумя аргументами.
- Вызов с двумя аргументами, где второй – строка в кавычках, содержащая пробел.
$ python arguments-count.py The script is called with 0 arguments $ python arguments-count.py --help me The script is called with 2 arguments $ python arguments-count.py --option "long string" The script is called with 2 arguments
Итерация по аргументам
В нашем третьем примере выводятся все аргументы, отправленные скрипту Python, за исключением самого имени программы. Поэтому мы перебираем аргументы командной строки, начиная со второго элемента списка. Напомним, что это индекс 1, поскольку списки в Python основаны на 0.
import sys # Count the arguments arguments = len(sys.argv) - 1 # Output argument-wise position = 1 while (arguments >= position): print ("Parameter %i: %s" % (position, sys.argv)) position = position + 1
Ниже мы вызываем наш код, который был сохранен в файле arguments-output.py. Как и в предыдущем примере, на выходе показаны три разных вызова:
- Звонок без аргументов.
- Вызов с двумя аргументами.
- Вызов с двумя аргументами, где второй аргумент – строка в кавычках, содержащая пробел.
$ python arguments-output.py $ python arguments-output.py --help me Parameter 1: --help Parameter 2: me $ python arguments-output.py --option "long string" Parameter 1: --option Parameter 2: long string
Помните, что смысл показа строки в кавычках заключается в том, что параметры обычно разделяются пробелом, если только они не заключены в кавычки.
Запуск программ
Пока наш Python может работать только через командную строку — какие команды введёте, те он и выполнит. Многим разработчикам это нравится, но для старта это неудобно. Например, чтобы запустить программу, нужно написать в командной строке так:
Полное имя означает, что нужно написать не только название файла, но и диск с папкой, где он находится. Чтобы было понятнее, давайте возьмём наш код из статьи про таймер на Python и сохраним его в файле time.py3 на диске D. Py3 означает, что внутри этого файла будет код на Python3
Можно просто назвать файл python.py, без тройки, но для некоторых моментов это может быть важно
Теперь, чтобы запустить наш код, напишем в командной строке:
Результат работы — выполненный алгоритм:
Настройка под Python
Установка расширения «Python»
Для начала работы с Python, нужно перейти на вкладку , что находится на панели слева, либо нажать . Сделав это, набираем в строке поиска «Python».
Для начала работы с Python, установите расширение от Microsoft — «Python».
VS Code поддерживает, как вторую, так и третью версию языка, однако python интерпретатор на свою машину вам придётся поставить самостоятельно.
Подробнее о том, как установить Python:
Установка Python на Windows, Linux, Mac OS
Если вы новичок и только начинаете работу с Python или же не имеете каких-то особых указаний на этот счёт, то лучшим выбором станет именно актуальная третья версия.
Вот краткий список основных возможностей расширения «Python»:
- Автодополнение кода.
- Отладка.
- Поддержка сниппетов.
- Написание и проведение тестов.
- Использование менеджера пакетов Conda.
- Возможность создания виртуальных сред.
- Поддержка интерактивных вычисления на Jupyter Notebooks.
Выбор версии интерпретатора Python
После от вас потребуется совершить выбор версии интерпретатора внутри самого редактора (обычно VS code знает, где он расположен). Для этого:
- Откройте командную строку VSCode (Command Palette) комбинацией .
- Начинайте печатать «Python: Select Interpreter»;
- После, выберите нужную версию интерпретатора.
Выбор интерпретатора в VSCode
Также выбрать версию можно в панели активности в левом нижнем углу:
Выбор версии Python-интерпретатора в панели активности VS Code
Если вы хотите использовать в своем проекте:
- Установите командой (или );
- Выполните команду ;
- Откройте «Command Palette», напечатайте «Python: Select Interpreter» и из списка выберите нужную версию интерпретатор.
Подробнее о pipenv:
Pipenv — современный менеджер зависимостей для Python-проектов
❖ Метод 1: Использование пути
Когда вы пытаетесь запустить Python в командной строке, то, что это делает, это то, что он ищет Переменная среды и проверки для выполнения файла исполняемого файла, который может быть либо пакетным файлом ( ), файл команды ( ) или любой другой исполняемый файл ( ), который соответствует Имя дано. Как только правильный файл найден, он выполняет программу, используя этот файл. Теперь, если у вас есть две версии Python, установленные в вашей системе (Python 2.7 и 3.8), то переменная пути будет содержать местоположение как каталогов. Но проблема заключается в том, как только Windows находит первый матч, он прекратит изучить любой другой путь.
Чтобы преодолеть этот барьер, вы должны явно вызывать один или оба из приложений, использующих их путь. Например, как вы можете видеть ниже, у меня есть две версии Python, установленной в моей системе.
- Чтобы выполнить свой код в Python 2.7 Тогда вы должны позвонить
- Чтобы выполнить свой код в Python 3.8 , вы должны позвонить Отказ Однако это не нужно, поскольку выбранная версия по умолчанию уже является Python-3.8 в этом случае.
Приложение, необходимое для планирования
Launch Center Pro – это приложение, которое можно использовать для выполнения задач на основе триггеров местоположения и времени. Самое приятное, что он также может выполнять действия с использованием схемы URL-адресов ios. Это означает, что он может открыть Pythonista и запустить в нем любой скрипт! Вот как это работает:
- Создайте новое действие, нажав кнопку карандаша в правом верхнем углу и нажав на пустой слот. Затем в поле URL используйте следующую логику: Это будет работать script.py , который находится в локальной корневой папке вашего Pythonista.
- Если ваш скрипт находится в папке, то используйте следующую схему: или
- Если вы хотите запустить скрипт из библиотеки iCloud, используйте следующую схему:
После создания нажатие на это действие будет делать именно то, что вы ожидаете: оно откроет Pythonista и мгновенно запустит определенный сценарий.
Планирование
В Центре запуска можно настроить триггеры времени и местоположения. При создании или редактировании действия используйте меню Расписание и Триггеры местоположения . Это довольно самоочевидно, как их использовать. Таким образом, вы можете запланировать запуск сценариев в определенное время рабочего дня или когда вы приходите на работу, выходите из дома и т. Д
Пожалуйста, обратите внимание, что запуск не сможет выполнять какие-либо действия в фоновом режиме без вашего разрешения. Он отобразит уведомление об определенном времени/местоположении, но он выполнит действие только после того, как вы нажмете на уведомление и разблокируете свой телефон
Тем не менее, это довольно аккуратный способ планировать сценарии с вашего iPhone.
Использование модуля argparse
Этот модуль облегчит нам разбор и дальнейшее использование передаваемых скрипту аргументов из командной строки.
Начнем переписывать наш пример:
Сохраним код в новый файл hello2.py и выполним передав ему в качестве параметра «Александр»:
Мы получим то, что требовалось:
Разберем подробнее строку:
В ней мы с помощью метода add_argument и передаваемых ему параметров, задали необязательный (для этого указали nargs=’?’) позиционный аргумент. Если аргумент не передается, то он принимает значение указанное в default.
Важно помнить, что при позиционных аргументах важен их порядок в момент, когда мы вызываем скрипт. Первый аргумент, переданный скрипту, становится первым позиционным аргументом, второй аргумент — вторым позиционным аргументом и т.д
Продолжим доработку кода. Теперь мы хотим, чтобы Имя передавалось именованным параметром —name
Для этого всего лишь надо изменить одну строку создания аргумента
Теперь можно запустить скрипт с именованным параметром —name:
Александр
Мы получим «Привет Александр», а при отсутствии параметра, будет выводится значение по умолчанию «Привет мир».
У названия параметра может быть краткая форма, она записывается с одним «—«, например:
А что если в качестве параметра —name мы заходим передать Имя + Фамилия?
Выполнив это сейчас мы получим ошибку error: unrecognized arguments: Третьяков поскольку модуль argparse решил что фамилия это отдельный аргумент.
Чтобы поправить ситуацию, используем дополнительный параметр метода add_argument — nargs со значением «+», который обозначает, что мы ожидаем одно или более значений аргумента.
Теперь повторно вызвав скрипт, получим все переданные параметры в виде списка:
Сравнения
В программировании часто надо что-то сравнивать. Что проще всего сравнить друг с другом? Числа, конечно. Давай посмотрим, как это работает:
command-line
Мы передали Python несколько чисел для сравнения. Как ты можешь заметить, Python сравнивает не только числа, но и результаты методов (например, умножения). Неплохо, правда?
Хочешь спросить, почему мы написали двойной символ равенства , чтобы проверить, одинаковы ли числа? Потому что одинарные символ равенства уже задействован под присваивание значения переменным. Ты всегда, всегда должна писать два символа равенства , если хочешь проверить, одинаковы ли объекты. Мы также можем проверить, различаются ли объекты. Для этого мы используем , как показано в примере выше.
Дадим Python еще два задания:
command-line
С и все понятно, но что значат и ? Читай их следующим образом:
- x y означает: x больше y
- x y означает: x меньше y
- x y означает: x меньше или равен y
- x y означает: x больше или равен y
Супер! Хочешь еще? Тогда попробуй вот это:
command-line
Ты можешь передать Python столько чисел, сколько захочешь, и он будет возвращать ответ! Хитро, правда?
- and — если ты используешь оператор , оба сравнения по обе стороны от него должны быть True (верны), чтобы результат всей команды был равен True.
- or — если ты используешь оператор , достаточно одному из сравнений по обе стороны от него быть равным True, чтобы результат всей команды также равнялся True.
Ты когда-нибудь слышала выражение «сравнивать тёплое с мягким»? Попробуем сделать что-то подобное в Python:
command-line
Как мы видим, Python не знает, как сравнить число () и строку () между собой. Поэтому он просто возвращает нам ошибку TypeError и предупреждает, что объекты заданных типов не могут быть сравнены.
Циклы
Ну вот и последняя часть. Быстро время пролетело, верно? 🙂
Программисты не любят повторяться. Программирование — это автоматизация вещей, поэтому мы не хотим приветствовать каждого человека по имени вручную, верно? Здесь пригодятся циклы.
Еще помнишь о списках? Давай создадим список девушек:
python_intro.py
Мы хотим поздороваться с каждой по имени. У нас есть функция , которая этим и занимается, так что давай поместим её в цикл:
python_intro.py
Оператор работает по схожему принципу что и ; в коде после обоих операторов должен быть отступ в четыре пробела.
Ниже полный код, который должен быть у нас в файле:
python_intro.py
И после запуска:
command-line
Как ты можешь заметить, все команды внутри цикла (с отступом от левого края) будут выполняться для каждого элемента списка .
Ты также можешь использовать цикл с числами с помощью функции :
python_intro.py
Что выведет на экран:
command-line
Функция создает список чисел, следующих от первого до второго с заданным шагом (начало, конец и шаг мы передаем функции как параметры; если шаг не указать, как в примере выше, он будет по умолчанию равен 1).
Обрати внимание, что второе число (конец списка) не включается в результат работы функции ( создает список от 1 до 5, не включающий 6). Это потому, что «range» — полуоткрытый диапазон, то есть включает в себя первое значение, но не включает последнее
Настройка Pi для запуска скриптов Python
Хорошо, ваш Pi запущен и работает, теперь вам просто нужно настроить его для запуска скриптов Python. Хорошая новость такова: если вы используете Raspbian, то делать вам особо нечего, так как Python установлен прямо из коробки Единственное, что вы можете сделать, это загрузить последнюю версию, вероятно, потому, что Raspbian не имеет последней версии. Направляйтесь к python.org , и обновить при необходимости. Но в остальном тебе хорошо идти. Вы можете скопировать существующие файлы .py и сразу же начать использовать их со встроенным IDE или терминалом. Кстати говоря: если вы копируете файлы, которые использовали в Windows или OS X, помните, что в Linux вам понадобится другая строка shebang . Вы, наверное, знаете, где это искать, но вот это для справки:
- В Windows строка shebang-это .
- В OS X строка shebang-это .
- В Linux строка shebang-это . (строки shebang-это первые строки в файлах скриптов python, которые сообщают системе, где найти интерпретатор)
Кроме того, если вы хотите запустить скрипты из терминала, вам нужно сделать несколько дополнительных шагов:
- Поместите их .py файлы в свою домашнюю папку
- Сделайте их исполняемыми с помощью следующей команды: Теперь вы можете запустить скрипт, набрав к терминалу (Если вы разместите их где-то еще, кроме своей домашней папки, вам придется описать весь путь, чтобы запустить их)
Создание исключения при коде ошибки выхода
Иногда бывает полезно создать исключение, если при выходе из работающей программы выдается код ошибки выхода. Программы, выдающие нулевой код ошибки при выходе считаются успешными, однако при ненулевом коде ошибки выхода считается, что в программе произошла ошибка. Например, данная система может быть полезной, если нам нужно выдавать исключение при запуске в каталоге, не являющемся репозиторием .
Мы можем использовать аргумент ключевого слова , чтобы выдавал исключение в случае возврата внешней программой ненулевого кода ошибки выхода:
Если запустить этот код, вывод будет выглядеть следующим образом:
Этот вывод показывает, что мы запустили субпроцесс, выдавший ошибку, которая выводится в на нашем терминале. Затем добросовестно выдал ошибку от нашего имени в нашей основной программе Python.
Также модуль включает метод , который можно использовать с похожим результатом:
Если мы запустим этот код, мы получим:
Поскольку мы не передали в , мы успешно привязали экземпляр к , хотя наша программа выполнила выход с ненулевым кодом ошибки. При этом при вызове выдается ошибка , поскольку модуль обнаруживает код ошибки выхода для завершенного процесса.