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

Иерархия классов модуля io

Реализация потоков ввода-вывода организована в виде иерархии классов. Сначала абстрактные базовые классы, которые используются для указания различных категорий потоков, затем конкретные классы, обеспечивающие стандартные реализации потоков.

Примечание Абстрактные базовые классы также предоставляют реализации по умолчанию некоторых методов, чтобы помочь реализации конкретных классов потока. Например BufferedIOBase предоставляет неоптимизированные реализации методов readinto() и readline().

В верхней части иерархии ввода-вывода находится абстрактный базовый класс IOBase. Он определяет базовый интерфейс к потоку.

Обратите внимание, что нет никакого разделения между чтением и записью в потоки. Реализации разрешается вызывать исключение UnsupportedOperation, если они не поддерживают данную операцию.

Абстрактный класс RawIOBase расширяет класс IOBase. Он имеет дело с чтением и записью байтов в поток. Класс FileIO это подкласс RawIOBase обеспечивает интерфейс к файлам в файловой системе машины.

Абстрактный класс BufferedIOBase имеет дело с буферизацией на необработанном байтовом потоке RawIOBase. Его подклассы, BufferedWriter, BufferedReader и буфер потоков BufferedRWPair, предоставляют доступ к чтению, записи и одновременно к чтения и записи соответственно. BufferedRandom обеспечивает буферизованный интерфейс для потоков произвольного доступа. Класс BufferedIOBase подкласс BytesIO представляет собой поток байтов в памяти.

Абстрактный класс TextIOBase - это подкласс IOBase, имеет дело с потоками, байты которых представляют текст и обрабатывает кодирование и декодирование в строки и из строк. Класс TextIOWrapper, который расширяет его, представляет собой буферизованный текстовый интерфейс к буферизованному необработанному потоку BufferedIOBase. Наконец, класс StringIO - это поток в памяти для текста.

Имена аргументов не являются частью спецификации и только аргументы функции open() предназначены для использования в качестве ключевых аргументов.