Выполнение команд оболочки из сценария Python: подробное руководство

Чтобы выполнить команды оболочки из сценария Python, вы можете использовать несколько методов. Вот некоторые из наиболее распространенных подходов:

  1. Использование функции os.system: Функция os.systemпозволяет запускать команды оболочки, передавая их в виде строк. Например, вы можете использовать os.system("ls -l")для выполнения команды “ls -l” в оболочке.

  2. Использование модуля subprocess. Модуль subprocessобеспечивает большую гибкость и контроль над выполнением команд оболочки. Вы можете использовать функцию subprocess.runдля выполнения команд и захвата их вывода. Этот метод рекомендуется для более сложных сценариев. Вот пример:

    import subprocess
    result = subprocess.run(["ls", "-l"], capture_output=True, text=True)
    print(result.stdout)
  3. Использование функции os.popen. Функция os.popenпозволяет открыть канал для команды или из нее и получить доступ к ее вводу или выход. Вот пример:

    import os
    stream = os.popen("ls -l")
    output = stream.read()
    print(output)
  4. Использование сторонних библиотек: доступны различные сторонние библиотеки, которые предоставляют более расширенные функции для выполнения команд оболочки из Python, например sh, pexpectи ткань. Эти библиотеки предлагают дополнительные функции, такие как удаленное выполнение команд и улучшенное взаимодействие с командной строкой.