Курс 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. Lambda-функция в Python: использование с map() и sum()
  2. Счетчик в Python: most_common()
  3. Метод rrshift для пользовательских объектов
  4. Хранение переменных в Python.
  5. Просмотр файла в Jupyter Noteboo
  6. Переворот строки
  7. Лямбда-функции в Python
  8. Создание объекта timedelta
  9. Ключевое слово global в Python
  10. Вывод с переменной через запятую
  11. Инициализация объекта
  12. Группировка элементов в словарь
  13. Метод pop() списка
  14. Объединение словарей в Python 3.5+
  15. Взаимодействие с sys
  16. Форматирование вывода списков
  17. Объединение словарей в Python
  18. Официальный канал Python в Telegram
  19. Python Метод sleep() из time
  20. Удаление эмодзи с помощью pandas
  21. Функция product() из itertools
  22. Использование модуля math
  23. Новшества Flask 2.0
  24. Создание вложенного генератора
  25. Расширение информации об ошибке в Python
  26. Модуль Antigravity в Python 3
  27. Работа с датами в Python
  28. Сериализация объектов в Python
  29. Преобразование Word в PDF с Spire.Doc
  30. PrettyTable: создание таблицы
  31. Оператор умножения для вектора
  32. Обработка StopIteration в Python
  33. Генерация чисел с range()
  34. Метод split() для разделения строк
  35. Запуск внешних программ с subprocess
  36. Работа с коллекциями Python
  37. Работа с процессами в Python
  38. Структура данных словарь в Python
  39. Итераторы в Python
  40. Путь к интерпретатору Python
  41. Сравнение строк в Python
  42. Структурирование именованных констант
  43. Именование переменных в Python
  44. Очистка строки в Python
  45. Создание итерируемых объектов
  46. Функции map, filter и reduce
  47. Копирование объектов в Python
  48. Атрибуты массивов в Numpy

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