Курс 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. Функция zip() в Python
  2. Метод setdefault() в Python
  3. Использование *args
  4. Введение в PyTorch
  5. Перемешивание списка с shuffle()
  6. Карта бомбоубежищ в Москве и Питере
  7. Управление импортом в Python
  8. Улучшение читаемости кода в Python
  9. Модуль os в Python: работа с файлами
  10. Применение функции к каждому элементу списка
  11. Оператор объединения словарей
  12. Сравнение объектов в Python
  13. Ветвление выражения в Python
  14. Вычисление логарифмов в Python
  15. Метод pop() списка
  16. Именованные аргументы в Python
  17. Роль ключевого слова self
  18. Работа с каталогами в Python
  19. Объединение словарей в Python
  20. Визуализация пропусков данных
  21. Модуль subprocess: запуск внешних команд
  22. Проверка типов с помощью isinstance
  23. Создание namedtuple из словаря
  24. Имена объектов в Python
  25. Работа с массивами в Numpy
  26. Операции со строками в Python
  27. Подписка на каналы разработчиков
  28. Оператор in для Python
  29. Заказ карты Тинькофф Black
  30. Сумма элементов списка
  31. Цикл while в Python
  32. Форматирование вывода списков
  33. Настройка Cron
  34. Переворот последовательности
  35. *args и **kwargs в Python
  36. Функции any() и all() в Python
  37. Генераторы в Python
  38. Поиск индексов в списке
  39. Python: Фильтрация списков с помощью filter()
  40. Переменная Шредингера
  41. Основы работы со списками
  42. Функции map, filter, reduce
  43. Работа с переменными в Python
  44. Оператор Walrus в Python
  45. Функция zip() в Python
  46. Работа с timedelta в Python
  47. Удаление элемента по индексу в Python
  48. Проверка вхождения подстроки

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