Курс 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. Конкатенация строк с помощью join()
  3. Создание коллекций из выражения-генератора
  4. Группировка элементов в словарь
  5. Библиотека Chartify: руководство
  6. Измерение времени выполнения кода
  7. Итерация по коллекции в Python
  8. Python: возвращение нескольких значений
  9. Создание таблиц в терминале с PrettyTable
  10. Печать комбинаций в Python с Itertools
  11. Мощь вложенных функций в Python
  12. Работа с кортежами
  13. Рекурсия для обращения строки
  14. Извлечение данных из JSON
  15. Манипуляция формой массива в Numpy
  16. Методы сравнения множеств
  17. Перебор элементов списка в Python
  18. Команда %dhist — список посещенных каталогов
  19. Декораторы с аргументами
  20. Пересечение списков с использованием множеств
  21. Конвертация текстовых чисел с помощью Numerizer
  22. Руководство по библиотеке pydantic
  23. Лямбда-функции в Python
  24. Разница между датами
  25. Работа с модулем Calendar
  26. Сравнение неупорядоченных списков
  27. Очистка вывода в Python
  28. Перемещение и удаление файлов в Python
  29. Взаимодействие с sys
  30. Проверка ввода с помощью isdigit
  31. Библиотека sh: удобные команды терминала
  32. Вывод с переменной через запятую
  33. Операторы сравнения в Python
  34. Метод join для наборов
  35. Профилирование кода
  36. Именованные срезы в Python
  37. Отделение звука от видео
  38. Деление в Python
  39. Нахождение разницы между списками в Python
  40. Метод __iand__ для пользовательских классов
  41. Получение частей дроби
  42. Аннотации типов в Python
  43. Операторы присваивания в Python
  44. Перегрузка операторов в Python
  45. Antigravity модуль
  46. Итераторы в Python
  47. Строки в Python: апострофы и кавычки

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