все Python 3osфункция
os.system
os — аварийное завершение
Выполняет команду в системной оболочке и ждёт её завершения. На Unix возвращает закодированный статус ожидания, на Windows — код возврата.
Синтаксис
os.system(command)
На Unix возвращает не код возврата, а закодированный статус ожидания: os.system('exit 3') даёт 768, и перевести его помогает os.waitstatus_to_exitcode. На Windows результат — сам код. Команда идёт через оболочку, поэтому строка с данными пользователя открывает путь к внедрению команд. Вывод не перехватывается. Для новой работы рекомендован subprocess.run со списком аргументов.
Примеры
# Python 3.9+
import os
print(os.system('echo привет')) # → сначала оболочка печатает «привет», потом 0 — код успешного завершения
code = os.system('exit 3')
print(code) # → зависит от ОС: 3 в Windows, 768 (то есть 3 << 8) в Unix
print(os.waitstatus_to_exitcode(code)) # → только Unix: 3 — статус ожидания распакован в настоящий код возврата
print(os.system('такой-команды-нет')) # → оболочка печатает своё сообщение об ошибке, код ≠ 0; исключение НЕ бросается
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности