Пропустить до содержимого

Как использовать subprocess run в Python?

[

Модуль subprocess: Использование внешних программ в Python

Если вы когда-либо хотели облегчить написание сценариев командной строки или использовать Python вместе с командными приложениями - или любыми другими приложениями в целом - то модуль subprocess в Python может вам помочь. От выполнения команд оболочки и командных приложений до запуска графических приложений, модуль subprocess в Python может быть очень полезен.

В конце этого руководства вы сможете:

  • Понять, как модуль subprocess в Python взаимодействует с операционной системой
  • Исполнять команды оболочки, такие как ls или dir
  • Подавать ввод в процесс и использовать его вывод.
  • Обрабатывать ошибки при использовании subprocess
  • Понять сферы применения для subprocess, рассмотрев практические примеры

В этом руководстве вы получите общую модель мышления для понимания процессов, подпроцессов и Python, прежде чем начать работу с модулем subprocess и экспериментировать с примером. После этого вы начнете исследовать оболочку и узнаете, как использовать subprocess в Python с помощью оболочек и систем на базе Windows и UNIX. В частности, вы рассмотрите взаимодействие с процессами, использование каналов и обработку ошибок.

Примечание: subprocess не является модулем для автоматизации графического интерфейса пользователя (GUI) или способом достижения параллельности выполнения. Для автоматизации GUI вы можете обратить внимание на модуль PyAutoGUI. Для параллельной работы рекомендуется ознакомиться с разделом данного руководства, посвященному модулям, связанным с subprocess.

Как только вы освоите основы, вы изучите некоторые практические идеи о том, как использовать Python вместе с внешними программами. Будут представлены детальные, пошаговые, исполняемые примеры кода, чтобы помочь вам лучше понять и применить модуль subprocess в своих проектах.

1. Процессы и подпроцессы

1.1. Процессы и операционная система

Процесс в операционной системе - это экземпляр выполняющейся программы. Он имеет свое состояние, включая память, открытые файлы и т.д. Операционная система отвечает за управление процессами и обеспечивает их параллельное выполнение.

1.2. Продолжительность жизни процесса

Процесс имеет определенную продолжительность жизни, начиная с его создания и заканчивая завершением. Процесс может быть активным или неактивным в зависимости от того, выполняется ли программа, которую он представляет. Обычно процессы являются временными, их жизненный цикл завершается, когда программа добивается своей цели или прекращает работу.

1.3. Активные процессы на вашей системе

Вам может быть интересно узнать, какие процессы в настоящее время выполняются на вашей системе. В Python вы можете использовать модуль subprocess для выполнения команды, которая предоставляет информацию о текущих активных процессах.

Пример: Получить список активных процессов на системе:

import subprocess
# Выполнение команды для получения списка активных процессов
result = subprocess.run(['ps', 'aux'], capture_output=True, text=True)
# Вывод результата
print(result.stdout)

В этом примере используется метод run() для выполнения команды ps aux, которая выдает информацию о всех процессах на системе. Результат сохраняется в переменную result, а затем выводится на экран.