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

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

Абстрактный базовый класс для всех классов ввода/вывода.

Синтаксис:

import io

fp = io.IOBase()

Описание:

Абстрактный базовый класс io.IOBase() - это класс для всех классов ввода/вывода действующих на потоки байтов. Не имеет публичного конструктора.

Класс io.IOBase() предоставляет пустые абстрактные реализации для многих методов, которые выборочно могут переопределять производные классы. Реализация по умолчанию представляют файл, который нельзя прочитать, записать или найти.

Несмотря на то, что IOBase не объявляет методы read() или write() потому что их подписи будут отличаться, реализации и клиенты должны рассматривать эти методы как часть интерфейса. Кроме того, реализации могут вызывать исключения ValueError или UnsupportedOperation при вызове операций, которые они не поддерживают.

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

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

Класс IOBase и его подклассы поддерживает протокол итератора, это означает, что объект IOBase может быть повторен по получению строк в потоке. Строки определяются немного по-разному в зависимости от того, является ли поток двоичным потоком с выдачей байтов или текстовым потоком с выдачей символьных строк. Смотри readline() ниже.

Класс IOBase также является менеджером контекста и поэтому поддерживает оператор with. В этом примере файл закрывается после завершения набора операторов with, даже если возникает исключение:

with open('spam.txt', 'w') as file:
    file.write('Spam and eggs!')

Атрибуты и методы класса IOBase:

fp.close():

Метод fp.close() сбрасывает буфер в файл и закрывает поток. Этот метод не действует, если файл уже закрыт. После закрытия файла любая операция с файлом, например чтение или запись вызовет a исключение ValueError.

Для удобства можно вызывать этот метод более одного раза, но только первый вызов будет иметь эффект.

fp.closed:

Метод fp.closed проверяет закрыт ли поток и возвращает True если поток закрыт.

fp.fileno():

Метод fp.fileno() возвращает целое число основной файловый дескриптор потока, если он существует. Возникает исключение OSError, если объект IO не использует дескриптор файла.

fp.flush():

Метод fp.flush() очищает буфер записи потока, если это применимо. Метод ничего не делает для не блокирующих потоков и потоков доступных только для чтения.

fp.isatty():

Метод fp.isatty() возвращает True если поток является интерактивным, т.е. подключен к терминалу (tty устройству).

fp.readable():

Метод fp.readable() возвращает, True если поток может быть прочитан. Если False, метод read() поднимет исключение OSError.

fp.readline(size=-1):

Метод fp.readline() прочитает и вернет одну строку из потока. Если указан размер, то будет прочитано не более size байт.

Линия терминатора всегда б'\N' для двоичных файлов, для текстовых файлов, строки аргумент функции Open() может быть использована для выбора линии терминатора(ы) признал.

Для двоичных файлов разделитель строки всегда b'\n', для текстовых файлов можно использовать аргумент newline функции open() чтобы выбрать разделитель строки.

fp.readlines(size=-1):

Метод fp.readlines() прочитает и вернет список строк из потока. Аргумент size может быть указан для контроля количества прочитанных строк, прочитано будет не более size строк, если общий размер (в байтах или символах) всех строк превышает size.

Обратите внимание, что в классе уже возможно выполнять итерации по объектам файлов, используя for line in file: без вызова file.readlines().

seek(offset, whence=SEEK_SET):

Метод fp.seek() изменит позицию потока на заданное байтовое смещение offset. Смещение интерпретируется относительно позиции, обозначенной whence. Значение по умолчанию whence это SEEK_SET .

Значения whence:

  • SEEK_SET или 0 - начало потока (по умолчанию). Смещение должно быть нулевым или положительным.
  • SEEK_CUR или 1 - текущая позиция потока. Смещение может быть отрицательным.
  • SEEK_END или 2 - конец потока. Смещение обычно отрицательное.

Метод fp.seek() вернет новую абсолютную позицию.

seekable():

Метод fp.seekable() вернет True если поток поддерживает произвольный доступ. Если False, то методы seek(), tell() и truncate() поднимут исключение OSError.

tell():

Метод fp.tell() вернет текущую позицию потока.

truncate(size=None):

Метод fp.truncate() изменит размер потока до заданного размера в байтах или текущей позиции, если размер не указан. Текущая позиция потока не изменяется. Это изменение размера может расширить или уменьшить текущий размер файла. В случае расширения содержимое новой файловой области зависит от платформы. В большинстве систем дополнительные байты заполнены нулями.

Метод fp.truncate() вернет новый размер файла.

writable():

Метод fp.writable() вернет True если поток поддерживает запись. Если False, то методы write() и truncate() поднимут исключение OSError.

writelines(lines):

Метод fp.writelines() запишет список строк lines в поток. Разделители строк не добавляются, поэтому обычно для каждой из строк необходимо проверять наличие разделителя строк.

__del__( ):

Метод fp.__del__() уничтожает объект потока. Класс IOBase обеспечивает реализацию этого метода по умолчанию, которая вызывает метод экземпляра fp.close().