Сообщить об ошибке.

Функция system() модуля os в Python

Запустить/выполнить внешнюю команду в оболочке

Синтаксис:

import os

os.system(command)

Параметры:

  • command - str, команда.

Возвращаемое значение:

  • индикация состояния выхода.

Описание:

Функция system() модуля os выполняет команду command в подоболочке (subshell). Это реализуется путем вызова стандартной функции языка Си system() и имеет те же ограничения. Изменения в sys.stdin и т. д. не отражаются в среде выполняемой команды. Если команда генерирует какой-либо вывод, он будет отправлен в стандартный поток вывода интерпретатора.

В Unix возвращаемое значение является состоянием выхода процесса, закодированного в формате, указанном как для функции os.wait(). Обратите внимание, что POSIX не определяет значение возвращаемого значения функции Си system(), поэтому возвращаемое значение функции Python зависит от системы.

В Windows возвращаемое значение возвращается системной оболочкой после выполнения команды. Оболочка задается переменной среды Windows COMSPEC: обычно это cmd.exe, который возвращает состояние завершения выполнения команды. В системах, использующих не нативную оболочку, смотрите документацию по вашей оболочке.

Используйте эту функцию, если надо тупо запустить что-то из кода Python и не ждать результатов выполнения, по принципу - запустил и забыл.

Другими словами, запуская команду функцией os.system(cmd) НЕ получится получить/перенаправить вывод, который дает команда/программа cmd. Для извлечения данных из стандартного потока вывода воспользуйтесь модулем subprocess или по крайней мере функцией os.popen():

from subprocess import run, STDOUT, PIPE
# указывайте полный путь к запускаемой 
# программе/команде или она не будет работать
cmd = '/bin/ls -l /path/to/ls-dir'
# перенаправляем `stdout` и `stderr` в переменную `output`
output = run(cmd.split(), stdout=PIPE, stderr=STDOUT, text=True)
print(output)

Модуль subprocess предоставляет более мощные средства для порождения новых процессов и получения их результатов. Использование модуля subprocess предпочтительнее, чем использование этой функции.

Вызывает событие аудита os.system с аргументом command.

Доступность: Unix, Windows.

Примеры запуска программ функцией os.system(cmd):

import os
# указывайте полный путь к запускаемой 
# программе/команде или она не будет работать
>>> cmd = '/path/from/your/programm-or-cmd'
>>> code_exit = os.system(cmd)
>>> code_exit
# выведет:
# 0 - успех выполнения команды,
# что означает код завершения программы.