Курс 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. Получение списка файлов в директории с использованием os
  2. Запуск файлового сервера
  3. Сохранение и загрузка модели в PyTorch
  4. Удаление ключа из словаря в Python
  5. Работа с прокси в Python
  6. Отправка POST-запроса в REST API
  7. Операторы Splat и splatty-splat
  8. Очистка строки в Python
  9. Работа с контекстными менеджерами
  10. Функции высшего порядка в Python
  11. Вложенные функции в Python
  12. Функции map, filter и reduce
  13. Конкатенация строк с помощью join()
  14. Основы работы с os
  15. Создание словаря в Python
  16. Проверка на истинность объектов в Python
  17. Работа с JSON в Python
  18. Многострочные строки в Python
  19. Удаление ключей из словаря
  20. Метод __irshift__ для Python
  21. Определение размера папок в Python
  22. Переопределение метода __pow__
  23. Итерация по копии коллекции
  24. Повторение элементов в Python
  25. Лимиты на ресурсы Python
  26. Метод invert для побитового отрицания
  27. Оператор Walrus в Python
  28. Преобразование строк в числа в Python
  29. Документирование функций в Python
  30. Группировка элементов в словарь
  31. Операции с комплексными числами
  32. Установка библиотек в Python
  33. Хеширование паролей с солью
  34. Расширение операции побитового «и» в Python
  35. Метод __float__ в Python
  36. Создание словарей и множеств в Python.
  37. Метод remove() для удаления элемента из списка
  38. Активация Matplotlib в Jupyter
  39. Проверка дубликатов в Python
  40. Проверка вхождения подстроки
  41. Поиск уникальных и повторяющихся элементов
  42. Разделение строк в Python
  43. Сложные типы данных в Python
  44. Виртуальное окружение Python
  45. Методы в Python
  46. Переопределение метода

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