все Python 3ioпонятие
io.RawIOBase
абстрактные базы
Абстрактный базовый класс сырых (небуферизованных) бинарных потоков; его конкретная реализация — FileIO.
Синтаксис
issubclass(cls, io.RawIOBase)
Сырой поток в руки попадает редко: его даёт open(path, 'rb', buffering=0), а у обычного буферизованного файла он лежит в атрибуте .raw. Каждый read()/write() здесь — отдельный системный вызов, и read(n) вправе вернуть меньше n байт, даже когда файл ещё не кончился, поэтому дочитывать приходится циклом вручную; в обычном коде берут буферизованный слой, а сырой — только когда нужен полный контроль над вводом-выводом.
Примеры
import io
print(issubclass(io.FileIO, io.RawIOBase)) # → True
print(issubclass(io.RawIOBase, io.IOBase)) # → True
print(issubclass(io.BufferedReader, io.RawIOBase)) # → False
print(isinstance(io.BytesIO(), io.RawIOBase)) # → False
print(hasattr(io.RawIOBase, 'readinto')) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности