Подпроцесс Python – это модуль в Python, который помогает нам выполнять команды оболочки, получить трубы ввода/вывода/ошибок и коды ошибок для выполненной команды с языка Python.
Почему модуль субпроцесса Python?
Знаете ли вы какой-либо другой модуль в Python, который может помочь нам выполнить команды оболочки? Ваш ответ станет модулем «ОС» в Python.
OS.System () может помочь нам выполнить команды оболочки из программы Python, но проблема в том, что мы не можем получить вывод выполненной команды в нашей программе Python.
OS.System ()
>>> import os >>> os.system('ls') main.py requirements.txt venv
Выход генерируется на терминале. Мы можем получить только код ошибки только для команды выполненной оболочки.
Пример:
Код ошибки в OS.System ()
import os out = os.system('ls') >>> print(out) 0
Один из способов получения выхода команды выполненной оболочки – использование оператора трубопровода для хранения вывода в текстовом файле, а затем прочитайте файл в программе Python.
Пример:
OS.System () трубопровод
import os os.system('ls > output.txt') file = open('output.txt','r') >>> print(file.read()) output.txt main.py requirements.txt venv
Модуль подпроцесса Python – это интерфейс высокого уровня для выполнения команд Shell из программы Python и предназначен для замены следующих модулей Python Modules и функций:
OS.System () * ОС.spawn () os.popen () Popen2. () команды. () Согласно официальной документации Python, модуль подпроцесса будет управлять этими ранее указанными функциями, поскольку они будут устарены очень скоро.
Теперь, когда вы знаете, зачем выбрать подпроцесс в Python и какие функции он собирается заменить. Итак, давайте узнаем о модуле подпроцесса Python.
Функция запущенного подпроцесса Python
SubProcess.run (args, * ,,,, ** Другие_popen_kwargs)
Функция SubProcess.run () была добавлена в Python 3.5, и рекомендуется использовать функцию Run () для выполнения команд оболочки в программе Python.
Аргумент Args в subprocess.run ()
Функция принимает команду оболочки и возвращает объект завершенной обработки в Python.
Пример:
Завершенная доставка объекта
out = subprocess.run('ls', shell=True) >>> print(out) CompletedProcess(args='ls', returncode=0)
Узнайте больше о Python Secrocess от оригинального поста.
Оригинал: “https://dev.to/divshekhar/python-subprocess-execute-shell-commands-1bl2”