Курс 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"

  1. Функции all и any в Python
  2. Аннотации типов в Python
  3. Python: отличительная особенность — отступы
  4. Форматирование строк в Python
  5. Работа с исключениями в Python
  6. Декораторы в Python
  7. OrderedDict — упорядоченный словарь
  8. Список переменных в Python
  9. Оператор Walrus в Python
  10. Официальный канал Python в Telegram
  11. Необязательные аргументы в Python
  12. Установка и использование модуля «howdoi»
  13. Применение функции к каждому элементу списка
  14. Отправка POST запроса на сервер.
  15. Класс-оболочка для словарей
  16. Установка переменной среды в Python
  17. Сортировка с помощью key
  18. Форматирование чисел в Python
  19. Таймер обратного отсчета
  20. Хэш-функции и метод цепочек
  21. Создание новых функций через partial
  22. Оператор += для объединения строк
  23. Создание директории в Python
  24. Работа с файлами в Python
  25. Создание файла с проверкой ошибки
  26. Форматирование строк с помощью f-строк
  27. Тернарный оператор в Python
  28. Добавление вложенных списков
  29. Генерация случайных чисел в Python
  30. Получение ID процесса
  31. Декораторы с аргументами в Python
  32. Глобальные переменные в Python
  33. Отладка регулярных выражений в Python
  34. Разделение строки с помощью split()
  35. Docstring в Python
  36. Python: Фильтрация списков с помощью filter()
  37. Логические значения в Python
  38. Получение текущей даты и времени
  39. Управление асинхронными задачами с помощью Semaphore
  40. f-строки в формате строк
  41. Установка пакетов с помощью pip
  42. Подсчет частотности элементов в Python
  43. Библиотека sh: удобные команды терминала
  44. Метод index() в Python
  45. Логические значения в Python

Marketello читают маркетологи из крутых компаний