Курс 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"
- Принцип одной функции
- Транспонирование матрицы в Python
- Операции с числами в Python
- Создание уникального проекта
- Цикл for в Python
- Освобождение памяти в Python
- Удаление символа из строки
- Преобразование PowerPoint в PDF.
- Метод get() в Python
- Область видимости переменных
- Создание Telegram-бота на Python
- Работа с аргументами командной строки
- Обучение модели с указанием эпох
- Переопределение метода __floordiv__
- Регулярные выражения: метод match
- Работа с необработанными строками
- Создание списка через итерацию
- Встраивание HTML в Jupyter Notebook
- Хэш-функции в Python
- Методы __repr__ и __str__ в Python
- Поиск анаграмм с Counter
- Функции map() и reduce() в Python
- Аннотации типов в Python
- Проверка вхождения подстроки
- Модуль math: основные функции
- Комментарии в Python
- Python groupby() из itertools: работа с повторяющимися элементами
- Структурирование именованных констант
- Измерение времени выполнения кода с помощью time
- Шаблоны Flask: условия и циклы
- Функция zip() в Python
- Просмотр файла в Jupyter Noteboo
- Разница между датами
- Работа с f-строками 2.0
- Правила именования переменных
- Библиотека Rich: форматирование текста
- Поиск индекса элемента
- История Python
- Оператор * в Python
- Декоратор @override
- Работа с collections.Counter
- Создание и использование ChainMap
- Оператор морж в Python 3.8
- Руководство по использованию Colorama
- Принципы LSP и ISP в Python















