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

Интерфейс высокого уровня модуля io

Следующие функции и исключения предоставляют интерфейс высокого уровня модуля io.

Содержание:


io.DEFAULT_BUFFER_SIZE:

Атрибут модуля io.DEFAULT_BUFFER_SIZE целое число, содержащее размер буфера по умолчанию, используемого для буферизации классов модуля io. Встроенная функция open() использует размер файла blksize, которое получает от os.stat(), если это возможно.

>>> import io
>>> io.DEFAULT_BUFFER_SIZE
# 8192

Функции.

io.open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None):

Функция io.open() это псевдоним для встроенной функции open(). Эта функция поднимает событие аудита open с аргументами path, mode и flags. Аргументы mode и flags могут быть изменены или выведены из исходного вызова.

io.open_code(path):

Функция io.open_code() открывает предоставленный файл path с режимом 'rb'. Эта функция должна использоваться, когда целью является обработка содержимого как исполняемого кода.

Аргументы path должен быть абсолютный путь до файла.

Поведение функции io.open_code() может быть отменено более ранним вызовом PyFile_SetOpenCodeHook(), однако io.open_code() всегда следует рассматривать как взаимозаменяемую open(path, 'rb'). Переопределение поведения предназначено для дополнительной проверки или предварительной обработки файла.

io.text_encoding(encoding, stacklevel=2):

Новое в версии 3.10.

Функция io.text_encoding() является вспомогательной для вызываемых объектов, которые используют open() или io.TextIOWrapper и имеют переданный аргумент encoding=None.

Эта функция возвращает кодировку, если она не None, и 'locale', если кодировка None.

Эта функция выдает исключение EncodingWarning, если sys.flags.warn_default_encoding имеет значение True, а если encoding=None, то выдает переданный аргумент encoding.

Аргумент stacklevel указывает, где выдается предупреждение. Например:

def read_text(path, encoding=None):
    # по умолчанию `stacklevel=2`
    encoding = io.text_encoding(encoding) 
    with open(path, encoding) as f:
        return f.read()

В этом примере для вызывающей функции read_text() выдается исключение EncodingWarning.

Для получения дополнительной информации смотрите раздел "Кодировка текста" в материале "Модуль io, операции ввода/вывода в Python".

Исключения.

io.BlockingIOError:

Исключение io.BlockingIOError - это псевдоним совместимости для встроенного исключения BlockingIOError.

io.UnsupportedOperation:

Исключение io.UnsupportedOperation наследует исключения OSError и ValueError, которое возникает при вызове неподдерживаемой операции в потоке.

Потоки в памяти.

Можно использовать str или bytes - подобный объект в качестве файла как для чтения, так и для записи. Для строк io.StringIO можно использовать как файл, открытый в текстовом режиме. Для io.BytesIO можно использовать как файл, открытый в двоичном режиме. Оба обеспечивают полные возможности чтения-записи с произвольным доступом.