Курс 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. Оптимизация памяти с slots
  2. Метод join() с набором
  3. Реверс строки в Python
  4. Подчеркивание в REPL
  5. Функции range() в Python
  6. Модуль Antigravity в Python 3
  7. Сортировка в Python
  8. Функция zip() в Python
  9. Перегрузка операторов в Python
  10. Декораторы в Python
  11. Моржовый оператор в Python 3.8
  12. Создание коллекций из генератора
  13. Работа с дробями в Python
  14. Сравнение def и lambda-функций
  15. Изменение элемента списка
  16. Списки: объединение, изменение
  17. Модуль math: основные функции
  18. Использование type hints
  19. Создание комплексных чисел
  20. OrderedDict — упорядоченный словарь
  21. Подсчет часто встречающихся элементов
  22. Работа с Colorama
  23. Профилирование кода на Python
  24. Настройка нарезки списков
  25. Поиск всех индексов подстроки
  26. Конструктор в Python
  27. Список переменных в Python
  28. Оптимизация поиска в словарях
  29. Декораторы в Python
  30. Правила именования переменных
  31. Хранение переменных в словаре.
  32. Измерение времени выполнения кода
  33. Обмен переменными в Jupyter
  34. Удаление дубликатов из списка с помощью dict.fromkeys
  35. Перегрузка операторов в Python
  36. Работа с комплексными числами в Python
  37. Философия Python
  38. Метод rxor для операции побитового исключающего «или»
  39. Управление доступом к модулю
  40. Профилирование данных с Pandas.
  41. Monkey Patching в Python
  42. Модуль os в Python: работа с файлами

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