Курс Python → Запуск внешних программ с subprocess
Библиотека subprocess в Python предоставляет возможность запускать внешние программы и взаимодействовать с ними из Python-скрипта. Самый функциональный класс в этой библиотеке — Popen. Он позволяет выполнять дочерние процессы в новых процессах и обеспечивает более гибкое взаимодействие с ними. Например, если у вас есть сервер на Linux и установлен Python 2, вы можете использовать следующий код для замены интерпретатора Python 2 на Python 3:
subprocess.Popen(['test.py'], executable='python3')
С помощью Popen вы можете также сохранять весь ввод и вывод, а также перенаправлять их в файл для последующего использования. Вы можете запустить процесс в фоновом режиме или дождаться его завершения. Эти возможности могут быть использованы асинхронно с библиотекой asyncio.
Обычно Popen не ждет завершения процесса, поэтому для ожидания завершения процесса можно использовать метод wait. Это позволяет избежать проблем с асинхронным выполнением кода и гарантирует корректное завершение процесса.
Пример:
import subprocess
# Создаем новый процесс для выполнения команды
process = subprocess.Popen(['ls', '-la'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# Ждем завершения процесса
process.wait()
# Получаем вывод и ошибки
output, error = process.communicate()
print("Output:", output.decode())
print("Error:", error.decode())
Другие уроки курса "Python"
- Функции all и any в Python
- Аннотации типов в Python
- Python: отличительная особенность — отступы
- Форматирование строк в Python
- Работа с исключениями в Python
- Декораторы в Python
- OrderedDict — упорядоченный словарь
- Список переменных в Python
- Оператор Walrus в Python
- Официальный канал Python в Telegram
- Необязательные аргументы в Python
- Установка и использование модуля «howdoi»
- Применение функции к каждому элементу списка
- Отправка POST запроса на сервер.
- Класс-оболочка для словарей
- Установка переменной среды в Python
- Сортировка с помощью key
- Форматирование чисел в Python
- Таймер обратного отсчета
- Хэш-функции и метод цепочек
- Создание новых функций через partial
- Оператор += для объединения строк
- Создание директории в Python
- Работа с файлами в Python
- Создание файла с проверкой ошибки
- Форматирование строк с помощью f-строк
- Тернарный оператор в Python
- Добавление вложенных списков
- Генерация случайных чисел в Python
- Получение ID процесса
- Декораторы с аргументами в Python
- Глобальные переменные в Python
- Отладка регулярных выражений в Python
- Разделение строки с помощью split()
- Docstring в Python
- Python: Фильтрация списков с помощью filter()
- Логические значения в Python
- Получение текущей даты и времени
- Управление асинхронными задачами с помощью Semaphore
- f-строки в формате строк
- Установка пакетов с помощью pip
- Подсчет частотности элементов в Python
- Библиотека sh: удобные команды терминала
- Метод index() в Python
- Логические значения в Python















