⚙️ Python subprocess: что это и как работать с ним?
Python subprocess - это модуль в Python, который позволяет запускать команды операционной системы из программы на Python.
Вы можете использовать модуль subprocess для выполнения различных команд, таких как выполнение программ, запуск скриптов, выполнение команд командной строки и т. д.
Вот пример использования модуля subprocess для выполнения команды в командной строке:
import subprocess
# Ваша команда
command = "ls -l"
# Выполнение команды
result = subprocess.run(command, shell=True, capture_output=True, text=True)
# Получение вывода команды
output = result.stdout
# Вывод результата
print(output)
В приведенном выше примере мы используем функцию subprocess.run() для выполнения команды "ls -l". Затем мы получаем вывод этой команды с помощью свойства stdout и выводим его.
Детальный ответ
Python subprocess: что это?
Python subprocess - это модуль, который позволяет вам создавать, запускать и взаимодействовать с дочерними процессами из Python. Это полезная возможность, если вам необходимо запускать внешние команды, приложения или скрипты из своего Python кода.
Зачем использовать subprocess?
Python subprocess дает вам полный контроль над процессами, которые вы запускаете. Он позволяет вам вызывать внешние команды и получать результаты их выполнения, а также передавать входные данные и управлять выводом.
Примеры использования subprocess
Запуск внешней команды
Давайте рассмотрим простой пример запуска внешней команды, такой как вывод текущей даты с помощью команды "date" в Linux:
import subprocess
result = subprocess.run(['date'], capture_output=True, text=True)
print(result.stdout)
В этом примере мы использовали функцию subprocess.run()
для запуска команды "date". Мы передали команду как список аргументов, а также указали параметры capture_output=True
и text=True
, чтобы получить вывод команды в виде текста. Результат выводится с помощью print(result.stdout)
.
Передача входных данных
Вы также можете передавать входные данные в запускаемый процесс. Рассмотрим пример, в котором мы передаем строку в команду "grep" для поиска конкретного текста в файле:
import subprocess
input_data = "Hello, world!"
result = subprocess.run(['grep', 'world'], input=input_data, capture_output=True, text=True)
print(result.stdout)
В этом примере мы передали входные данные в виде строки с помощью параметра input
. Команда "grep" ищет текст "world" во входных данных и возвращает соответствующие строки.
Управление выводом
Python subprocess также позволяет вам контролировать вывод запускаемого процесса. Давайте рассмотрим пример, в котором мы запускаем команду "ls" и получаем список файлов и директорий:
import subprocess
result = subprocess.run(['ls'], capture_output=True, text=True)
file_list = result.stdout.split('\n')
print(file_list)
В этом примере мы разделили вывод команды "ls" на список файлов и директорий, используя символ новой строки '\n'
как разделитель. Мы получаем список и выводим его с помощью print(file_list)
.
Заключение
Python subprocess - мощный инструмент, который позволяет вам запускать внешние команды и скрипты из Python кода. Он дает вам полный контроль над процессами, позволяя передавать входные данные, управлять выводом и получать результаты выполнения команд. Использование модуля subprocess может значительно расширить возможности вашего Python приложения.