Курс 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. Метод enumerate() в Python
  2. Применение функции к элементам списка
  3. Подсчет вхождений элементов
  4. Операторы увеличения и уменьшения переменной
  5. Установка пакетов с помощью pip
  6. Метод get для словаря
  7. Объединение кортежей в Python
  8. Сравнение объектов в Python
  9. Работа со словарями в Python
  10. Кортежи в Python: особенности и преимущества
  11. Форматирование кода на Python
  12. List Comprehension Tutorial
  13. Вычисление времени выполнения
  14. Расчет времени выполнения программы
  15. Комментарии в Python
  16. Списки в Python: синтаксис представления
  17. Преобразование данных в Python
  18. Работа с файлами в Python
  19. Работа с каталогами в Python
  20. Частичное совпадение ввода
  21. Метод rxor для операции побитового исключающего «или»
  22. Установка и использование emoji
  23. Работа со строками в Python
  24. Преобразование Excel в PDF с Spire.XLS
  25. Работа с IP-адресами в Python
  26. Создание пустых функций и классов в Python
  27. Перемещение и удаление файлов в Python
  28. Pillow: работа с изображениями
  29. Переменные в Python
  30. Копирование объектов в Python
  31. Замена подстроки
  32. Переменные в Python: сокращение гласных
  33. Функции в одну строку
  34. Конвертация текстовых чисел с помощью Numerizer
  35. Работа с *args и **kwargs в Python
  36. Асинхронное программирование с asyncio
  37. Использование модуля math
  38. Создание директории в Python
  39. Преобразование PowerPoint в PDF.
  40. Удаление элементов из списка в Python
  41. Работа с enumerate()
  42. Проблемы с именами переменных
  43. Метод __ixor__ для побитового исключающего ИЛИ
  44. Многострочные комментарии в Python
  45. Преобразование списков в словарь
  46. Класс UserDict: дополнительная функциональность

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