> For the complete documentation index, see [llms.txt](https://treasuremaster.gitbook.io/python-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io.md).

# io

### io - основные инструменты для работы с потоками

#### Обзор

Модуль **io** предоставляет основные возможности Python для работы с различными типами ввода-вывода. Существует три основных типа ввода-вывода: ***text I/O*** (текстовый ввод-вывод), ***binary I/O*** (двоичный ввод-вывод) и ***raw I/O*** (необработанный ввод-вывод). Это общие категории, и для каждой из них можно использовать различные резервные хранилища. Конкретный объект, принадлежащий к любой из этих категорий, называется файловым объектом. Другие общие термины - поток ***stream*** и файловый объект ***file-like object***.

Независимо от своей категории, каждый конкретный объект потока также будет иметь различные возможности: он может быть доступен только для чтения, только для записи или чтения-записи. Он также может разрешать произвольный произвольный доступ (поиск вперед или назад в любое место) или только последовательный доступ (например, в случае сокета или канала).

Все потоки бережно относятся к типу данных, которые вы им предоставляете. Например, передача объекта str методу `write ()` двоичного потока вызовет ошибку TypeError. Таким образом, мы передадим объект bytes методу `write ()` текстового потока.

*Изменено в версии 3.3:* операции, которые раньше вызывали IOError, теперь вызывают OSError, поскольку IOError теперь является псевдонимом OSError.

#### Text I/O (текстовый ввод-вывод)

#### Binary I/O (двоичный ввод-вывод)

#### Raw I/O (необработанный ввод-вывод)

#### [Высокоуровневый интерфейс модуля](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/vysokourovnevyi-interfeis-modulya.md)

* [io.DEFAULT\_BUFFER\_SIZE](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/vysokourovnevyi-interfeis-modulya/io.default_buffer_size.md) - размер буфера по умолчанию
* не заполнено...

#### Иерархия классов

#### Базовые классы ввода-вывода

* [io.**IOBase**](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.iobase.md) class - абстрактный базовый класс для всех классов ввода-вывода
  * [close ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.iobase/io.iobase.close.md) - выталкивает и закрывает поток
  * closed
  * [fileno ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.iobase/io.iobase.fileno.md) - возвращает базовый файловый дескриптор
  * [flush ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.iobase/io.iobase.flush.md) - выталкивает содержимое буфера для записи в поток
  * [isatty ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.iobase/io.iobase.isatty.md) - поток подключен к терминалу?
  * readable ()
  * [readline ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.iobase/io.iobase.readline.md) - читает и возвращает одну строку из потока
  * [readlines ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.iobase/io.iobase.readlines.md) - читает и возвращает список строк из потока
  * [seek ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.iobase/io.iobase.seek.md) - изменяет позицию потока на заданное смещение
  * seekable ()
  * tell ()
  * truncate ()
  * writable ()
  * [writelines ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.iobase/io.iobase.writelines.md) - записывает список строк в поток
  * \_\_del\_\_ ()
* [io.**RawIOBase**](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.rawiobase.md) class
  * [read ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.rawiobase/io.rawiobase.read.md) - читает заданное количество байтов из объекта и возвращает их
  * [readall ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.rawiobase/io.rawiobase.readall.md) - читает и возвращает все байты из потока
  * [readinto ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.rawiobase/io.rawiobase.readinto.md) - считывает байты в заданный объект и возвращает их количество
  * [write ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.rawiobase/io.rawiobase.write.md) - записывает байтовый объект в необработанный поток и возвращает количество записанных байтов
* [io.**BufferedIOBase**](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.bufferediobase.md) class - базовый класс для двоичных потоков, поддерживающих буферизацию
  * raw
  * detach ()
  * [read ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.bufferediobase/io.bufferediobase.read.md) - читает и возвращает байты
  * read1 ()
  * readinto ()
  * readinto1 ()
  * [write ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.bufferediobase/io.bufferediobase.write.md) - записывает байтовый объект и возвращает количество записанных байтов

#### Ввод-вывод необработанных файлов

* io.**FileIO** class

#### Буферизованные потоки

Буферизованные потоки ввода-вывода обеспечивают интерфейс более высокого уровня для устройства ввода-вывода, чем необработанный ввод-вывод.

* [io.**BytesIO**](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.bytesio.md) class - реализация потока с использованием байтового буфера в памяти
  * getbuffer ()
  * [getvalue ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.bytesio/io.bytesio.getvalue.md) - возвращает все байты, содержащиеся в буфере
  * read1 ()
  * readinto1 ()
* [io.**BufferedReader**](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.bufferedreader.md) class
  * peek ()
  * [read ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.bufferedreader/io.bufferedreader.read.md) - читает и возвращает количество байтов заданного размера
  * read1 ()
* [io.**BufferedWriter**](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.bufferedwriter.md) class
  * [flush ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.bufferedwriter/io.bufferedwriter.flush.md) - переводит байты, хранящиеся в буфере в необработанный поток
  * [write ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.bufferedwriter/io.bufferedwriter.write.md) - записывает байтовый поток и возвращает количество записанных байтов
* io.**BufferedRandom** class
* io.**BufferedRWPair** class

#### Текстовый ввод-вывод (Text I/O)

* [io.**TextIOBase**](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.textiobase.md) class - базовый класс для текстовых потоков
  * encoding
  * errors
  * newlines
  * buffer
  * detach ()
  * [read ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.textiobase/io.textiobase.read.md) - читает и возвращает заданное количество символов из строки (или весь текст)
  * [readline ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.textiobase/io.textiobase.readline.md) - читает до новой строки или EOF и возвращает одну строку
  * [seek ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.textiobase/io.textiobase.seek.md) - меняет положение указателя потока на заданное смещение
  * tell ()
  * [write ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.textiobase/io.textiobase.write.md) - пишет строку в поток и возвращает количество записанных символов
* io.**TextIOWrapper** class
  * line\_buffering
  * write\_through
  * reconfigure ()
* [io.**StringIO**](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.stringio.md) class - поток в памяти для текстового ввода-вывода
  * [getvalue ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/io/io.stringio/io.stringio.getvalue.md) - метод возвращает строку, содержащую все содержимое буфера
* io.**IncrementalNewlineDecoder** class
