Курс 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. Переопределение метода __lshift__
  2. Расчет времени выполнения программы
  3. Сортировка элементов с OrderedDict
  4. Названия столбцов в Python таблицах
  5. Оптимизация памяти с __slots__
  6. Работа с часовыми поясами в Python
  7. Mad Libs Generator
  8. Конвертация коллекций в Python
  9. Получение значений из словарей
  10. Резервирование символов в Python
  11. Python Аргументы по умолчанию
  12. Обмен значений переменных в Python
  13. Множественное назначение в Python
  14. Отображение HTML кода в Python
  15. Методы обработки строк в Python
  16. Объединение строк с помощью метода join
  17. Импорт в Python: список all
  18. Глубокое копирование объектов
  19. PATCH-запрос с библиотекой requests
  20. Методы shutil для работы с файлами
  21. Структура данных словарь в Python
  22. Работа со строками в Python
  23. Работа с комплексными числами
  24. Функция map() в Python
  25. Принципы программирования
  26. Работа с датой и временем в Python
  27. Удаление пробелов методом translate()
  28. Поиск анаграмм с Counter
  29. Оптимизация памяти в Python
  30. Основные операции с библиотекой Numpy
  31. Библиотека schedule: планировщик задач
  32. Импорт модулей и пакетов в Python
  33. Создание функций с произвольным количеством аргументов
  34. Использование функции enumerate()
  35. Установка Git и AWS CLI
  36. Вакансии в Nebius
  37. Делегирование в Python
  38. Генераторы в Python
  39. Выбор редактора кода.
  40. Создание пар из последовательностей
  41. Установка и использование Logzero
  42. Создание итератора
  43. Обработка исключений в Python
  44. Сравнение строк в Python
  45. Создание комплексных чисел

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