Следующие функции и исключения предоставляют интерфейс высокого уровня модуля io
.
io.DEFAULT_BUFFER_SIZE
,io.open()
,io.open_code()
,io.text_encoding()
(новое в версии 3.10.),io.BlockingIOError
,io.UnsupportedOperation
,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
можно использовать как файл, открытый в двоичном режиме. Оба обеспечивают полные возможности чтения-записи с произвольным доступом.