Курс 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. Использование эмодзи в Python
  2. Установка Python3.7 и PIP
  3. Методы и функции в Python
  4. Работа с YAML в Python: PyYAML.
  5. Установка Home Assistant
  6. Игра «Камень, ножницы, бумага» — Python
  7. Регистрация на курсы SF Education
  8. Работа с CSV файлами в Python
  9. Функция enumerate в Python
  10. Класс UserDict: дополнительная функциональность
  11. Преобразование списка в словарь через генератор
  12. Генераторы в Python
  13. Отправка HTTP-запросов в Python
  14. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  15. Визуализация пропусков данных
  16. Измерение времени выполнения кода с использованием time
  17. Переопределение метода delitem в Python
  18. Генерация тестовых данных с factory_boy
  19. Пространство имен в Python
  20. Приближение чисел в Python
  21. Сортировка в Python
  22. Управление памятью в Python
  23. Замена элементов в списке с помощью генераторов списков
  24. Удаление эмодзи с помощью pandas
  25. Замена текста в Python
  26. Работа со строками в Python
  27. Оптимизация параметров в Python
  28. Операторы увеличения и уменьшения в Python
  29. Метод join() для объединения элементов
  30. Переворот строки
  31. Функции в Python: создание и вызов
  32. Особенности ключей словаря в Python
  33. Отрицательные индексы списков в Python
  34. Defaultdict в Python
  35. Профилирование кода на Python
  36. Поиск повторов в списке
  37. Генераторы в Python
  38. Подсказки типов в Python
  39. Счетчик в Python: most_common()
  40. Метод pop() списка
  41. Безопасный доступ к значениям словаря
  42. Методы shutil для работы с файлами
  43. Бесконечная проверка в Python
  44. Копирование и вставка текста в Python
  45. Создание объекта времени

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