Курс 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"
- Отладчик pdb: начало работы
- Тестирование функции сложения
- Секреты Python
- Функция с *args.
- Анонимные функции в Python
- Работа с набором данных CIFAR10 в PyTorch
- Переименование файлов в Python
- Создание списков в Python
- Работа с датами в Python
- Функция reduce() в Python
- Python: библиотеки и функции
- Генераторы в Python
- Равенство и идентичность в Python
- Класс Counter() для подсчета элементов
- Вложенные циклы в Python
- Добавление цвета в консоли
- Работа с парами ключ-значение
- Тест скорости набора текста на Python
- Новшества Flask 2.0
- Тестирование с unittest
- Передача аргументов через **arguments
- Удаление дубликатов из списка
- Изменение переменной в Python: nonlocal
- Объединение Python и Shell
- Курс Data Scientist в медицине
- Преобразование списков в словарь
- Цикл for в Python
- Установка и использование Telegram API в Python
- Метод get для словаря
- Сравнение неупорядоченных списков
- Передача аргументов в Python
- Оператор умножения для вектора
- Значения по умолчанию в Python
- Срезы в Python
- Функция с **kwargs в Python
- Подписка на Kaspersky Team
- Условные выражения в Python
- Оптимизация памяти с slots
- discard() — удаление элемента из множества
- Работа с пользовательским вводом
- Названия переменных
- Объединение словарей в Python
- Форматирование чисел в Python
- Использование html-скриптов в Jupyter Notebook
- Обработка исключений в Python
- Установка максимального количества цифр
- Переопределение метода __and__
- Фильтрация списка чисел















