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

Класс io.RawIOBase() модуля io в Python.

Базовый класс для необработанного двоичного ввода/вывода.

Синтаксис:

import io

fp = io.RawIOBase()

Описание:

Базовый класс io.RawIOBase() предназначен для необработанного двоичного ввода/вывода. Класс io.RawIOBase наследует класс io.IOBase. Не имеет публичного конструктора.

Необработанный (Raw) двоичный ввод-вывод обычно обеспечивает низкоуровневый доступ к базовому устройству ОС или API и не пытается инкапсулировать его в высокоуровневые примитивы.

Класс io.RawIOBase наследует атрибуты и методы из класса io.IOBase, а так же дополнительно предоставляет несколько методов.

Дополнительные методы класса io.RawIOBase:

fp.read(size=-1):

Метод fp.read() прочитает size байт из объекта потока и вернет их. Для удобства, если размер не указан или равен -1, возвращаются все байты до EOF. В противном случае выполняется только один системный вызов. Может быть возвращено меньше указанного размера size байтов, если вызов операционной системы возвращает меньше size байтов .

Если возвращается 0 байтов, а размер не равен 0, это указывает на конец файла. Если объект находится в неблокирующем режиме и нет доступных байтов, возвращается None.

По умолчанию реализация зависит от методов readall() и readinto().

fp.readall():

Метод fp.readall() прочитает и вернет все байты из потока до EOF, используя несколько вызовов к поток при необходимости.

fp.readinto(b):

Метод fp.readinto() считает байты в заранее выделенный записываемый байтоподобный объект b и вернет количество прочитанных байтов. Например b может быть bytearray. Если объект находится в неблокирующем режиме и нет доступных байтов, то вернет None.

fp.write(b):

Метод fp.write() запишет данные в байтоподобный объект b в базовый необработанный поток и вернет количество записанных байтов. Количество записанных байтов может быть меньше, чем длина объекта b в байтах, в зависимости от особенностей базового raw потока, и особенно если он находится в неблокирующем режиме. Метод вернет None, если необработанный поток не блокируется и ни один байт не может быть записан в него. Вызывающий объект может освободить или изменить объект b после того как метод вернет данные, поэтому реализация должна обращаться только к объекту b во время вызова метода.