Курс 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. Принцип одной функции
  2. Транспонирование матрицы в Python
  3. Операции с числами в Python
  4. Создание уникального проекта
  5. Цикл for в Python
  6. Освобождение памяти в Python
  7. Удаление символа из строки
  8. Преобразование PowerPoint в PDF.
  9. Метод get() в Python
  10. Область видимости переменных
  11. Создание Telegram-бота на Python
  12. Работа с аргументами командной строки
  13. Обучение модели с указанием эпох
  14. Переопределение метода __floordiv__
  15. Регулярные выражения: метод match
  16. Работа с необработанными строками
  17. Создание списка через итерацию
  18. Встраивание HTML в Jupyter Notebook
  19. Хэш-функции в Python
  20. Методы __repr__ и __str__ в Python
  21. Поиск анаграмм с Counter
  22. Функции map() и reduce() в Python
  23. Аннотации типов в Python
  24. Проверка вхождения подстроки
  25. Модуль math: основные функции
  26. Комментарии в Python
  27. Python groupby() из itertools: работа с повторяющимися элементами
  28. Структурирование именованных констант
  29. Измерение времени выполнения кода с помощью time
  30. Шаблоны Flask: условия и циклы
  31. Функция zip() в Python
  32. Просмотр файла в Jupyter Noteboo
  33. Разница между датами
  34. Работа с f-строками 2.0
  35. Правила именования переменных
  36. Библиотека Rich: форматирование текста
  37. Поиск индекса элемента
  38. История Python
  39. Оператор * в Python
  40. Декоратор @override
  41. Работа с collections.Counter
  42. Создание и использование ChainMap
  43. Оператор морж в Python 3.8
  44. Руководство по использованию Colorama
  45. Принципы LSP и ISP в Python

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