Курс 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"
- Методы shutil для работы с файлами
- Просмотр внешних файлов в %pycat
- Проверка версии Python
- Python Тесты и Гайды
- Обновление шаблона base.html
- Описание скриптов в README
- Работа с файлами в Python
- Генераторы в Python
- Хеширование паролей с использованием salt
- Возвращение нескольких значений
- Хэш-функции и метод цепочек
- Библиотека Chartify: руководство
- EMOT преобразование эмодзи в текст
- Обработка ошибок в Python
- Быстрый поиск кода
- Функциональное программирование.
- Отправка HTTP-запросов в Python
- Профилирование с cProfile
- Счетчик в Python: most_common()
- Копирование в Python
- Просмотр внешнего файла в Python
- Замер времени выполнения кода
- Функция __init__ в Python
- Преобразование чисел в Python
- Функция zip() в Python
- Пространство имен в Python
- Преобразование списка в словарь через генератор
- Функция map() в Python
- Метод ne для сравнения объектов
- Глобальные переменные в Python
- Именованные срезы в Python
- Метод setdefault() в Python
- Ускорение кода с помощью векторизации
- Игра Виселица на Python
- Вложенные циклы в Python
- Управление контекстом выполнения кода
- Изменения в обработке логических значений
- Распаковка аргументов в Python
- Работа с CSV файлами
- Counter() — подсчет элементов
- Переопределение метода __floordiv__
- Функция zip() для объединения списков
- Преобразование объекта в строку
- Оператор in для проверки наличия элемента
- Сортировка с помощью key
- Преобразование данных в Python















