Курс 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"
- Переопределение метода __lshift__
- Расчет времени выполнения программы
- Сортировка элементов с OrderedDict
- Названия столбцов в Python таблицах
- Оптимизация памяти с __slots__
- Работа с часовыми поясами в Python
- Mad Libs Generator
- Конвертация коллекций в Python
- Получение значений из словарей
- Резервирование символов в Python
- Python Аргументы по умолчанию
- Обмен значений переменных в Python
- Множественное назначение в Python
- Отображение HTML кода в Python
- Методы обработки строк в Python
- Объединение строк с помощью метода join
- Импорт в Python: список all
- Глубокое копирование объектов
- PATCH-запрос с библиотекой requests
- Методы shutil для работы с файлами
- Структура данных словарь в Python
- Работа со строками в Python
- Работа с комплексными числами
- Функция map() в Python
- Принципы программирования
- Работа с датой и временем в Python
- Удаление пробелов методом translate()
- Поиск анаграмм с Counter
- Оптимизация памяти в Python
- Основные операции с библиотекой Numpy
- Библиотека schedule: планировщик задач
- Импорт модулей и пакетов в Python
- Создание функций с произвольным количеством аргументов
- Использование функции enumerate()
- Установка Git и AWS CLI
- Вакансии в Nebius
- Делегирование в Python
- Генераторы в Python
- Выбор редактора кода.
- Создание пар из последовательностей
- Установка и использование Logzero
- Создание итератора
- Обработка исключений в Python
- Сравнение строк в Python
- Создание комплексных чисел















