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 - успех выполнения команды, # что означает код завершения программы.