Курс 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
- Конкатенация строк с помощью join()
- Создание коллекций из выражения-генератора
- Группировка элементов в словарь
- Библиотека Chartify: руководство
- Измерение времени выполнения кода
- Итерация по коллекции в Python
- Python: возвращение нескольких значений
- Создание таблиц в терминале с PrettyTable
- Печать комбинаций в Python с Itertools
- Мощь вложенных функций в Python
- Работа с кортежами
- Рекурсия для обращения строки
- Извлечение данных из JSON
- Манипуляция формой массива в Numpy
- Методы сравнения множеств
- Перебор элементов списка в Python
- Команда %dhist — список посещенных каталогов
- Декораторы с аргументами
- Пересечение списков с использованием множеств
- Конвертация текстовых чисел с помощью Numerizer
- Руководство по библиотеке pydantic
- Лямбда-функции в Python
- Разница между датами
- Работа с модулем Calendar
- Сравнение неупорядоченных списков
- Очистка вывода в Python
- Перемещение и удаление файлов в Python
- Взаимодействие с sys
- Проверка ввода с помощью isdigit
- Библиотека sh: удобные команды терминала
- Вывод с переменной через запятую
- Операторы сравнения в Python
- Метод join для наборов
- Профилирование кода
- Именованные срезы в Python
- Отделение звука от видео
- Деление в Python
- Нахождение разницы между списками в Python
- Метод __iand__ для пользовательских классов
- Получение частей дроби
- Аннотации типов в Python
- Операторы присваивания в Python
- Перегрузка операторов в Python
- Antigravity модуль
- Итераторы в Python
- Строки в Python: апострофы и кавычки















