Python 3.8+ioфункция
io.open_code
служебные
Открывает файл для чтения как исполняемый код с учётом аудит-хуков безопасности; предпочтительнее open() для загрузки кода (Python 3.8+).
Синтаксис
io.open_code(path)
Это всегда бинарное чтение: режим 'rb', параметров encoding и newline нет, а путь ожидается абсолютной строкой. Сама функция ничего не проверяет и безопасности не добавляет — ценность в единой точке перехвата: приложение или встраивающая среда может подменить её реализацию (или повесить аудит-хук) и, например, отказаться отдавать неподписанный файл. Через неё же импорт-механизм читает то, что собирается выполнить.
Примеры
import io
import json
print(callable(io.open_code)) # → True
with io.open_code(json.__file__) as f: print(f.mode, type(f).__name__) # → rb BufferedReader
print(io.open_code('no_such_file.py')) # → FileNotFoundError
print(io.open_code('script.py', 'w')) # → TypeError
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности