все Python 3osфункция
os.popen
os — процессы
Открывает канал к команде оболочки: возвращает файловый объект для чтения её вывода или записи ввода.
Синтаксис
os.popen(...)
Это обёртка над subprocess.Popen с shell=True: строка команды идёт в оболочку, и данные пользователя в ней открывают путь к внедрению команд. Метод close() возвращает None при успехе, иначе закодированный статус — на Unix его переводят через waitstatus_to_exitcode. Ошибка команды не поднимает исключение; для проверок удобнее subprocess.run(..., check=True).
Примеры
import os
print(os.popen('echo hello').read().strip()) # → hello
stream = os.popen('echo hello') # канал открыт на чтение вывода команды
print(stream.read() == 'hello\n') # → True — в конце вывода остаётся перевод строки
print(stream.close()) # → None — команда завершилась с кодом 0
print(os.popen('exit 3').close()) # → ненулевой статус: на Unix 768 (3 << 8), на Windows 3
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности