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 (необработанный ввод-вывод)

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

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

  • io.IOBase class - абстрактный базовый класс для всех классов ввода-вывода

    • close () - выталкивает и закрывает поток

    • closed

    • fileno () - возвращает базовый файловый дескриптор

    • flush () - выталкивает содержимое буфера для записи в поток

    • isatty () - поток подключен к терминалу?

    • readable ()

    • readline () - читает и возвращает одну строку из потока

    • readlines () - читает и возвращает список строк из потока

    • seek () - изменяет позицию потока на заданное смещение

    • seekable ()

    • tell ()

    • truncate ()

    • writable ()

    • writelines () - записывает список строк в поток

    • __del__ ()

  • io.RawIOBase class

    • read () - читает заданное количество байтов из объекта и возвращает их

    • readall () - читает и возвращает все байты из потока

    • readinto () - считывает байты в заданный объект и возвращает их количество

    • write () - записывает байтовый объект в необработанный поток и возвращает количество записанных байтов

  • io.BufferedIOBase class - базовый класс для двоичных потоков, поддерживающих буферизацию

    • raw

    • detach ()

    • read () - читает и возвращает байты

    • read1 ()

    • readinto ()

    • readinto1 ()

    • write () - записывает байтовый объект и возвращает количество записанных байтов

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

  • io.FileIO class

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

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

  • io.BytesIO class - реализация потока с использованием байтового буфера в памяти

    • getbuffer ()

    • getvalue () - возвращает все байты, содержащиеся в буфере

    • read1 ()

    • readinto1 ()

  • io.BufferedReader class

    • peek ()

    • read () - читает и возвращает количество байтов заданного размера

    • read1 ()

  • io.BufferedWriter class

    • flush () - переводит байты, хранящиеся в буфере в необработанный поток

    • write () - записывает байтовый поток и возвращает количество записанных байтов

  • io.BufferedRandom class

  • io.BufferedRWPair class

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

  • io.TextIOBase class - базовый класс для текстовых потоков

    • encoding

    • errors

    • newlines

    • buffer

    • detach ()

    • read () - читает и возвращает заданное количество символов из строки (или весь текст)

    • readline () - читает до новой строки или EOF и возвращает одну строку

    • seek () - меняет положение указателя потока на заданное смещение

    • tell ()

    • write () - пишет строку в поток и возвращает количество записанных символов

  • io.TextIOWrapper class

    • line_buffering

    • write_through

    • reconfigure ()

  • io.StringIO class - поток в памяти для текстового ввода-вывода

    • getvalue () - метод возвращает строку, содержащую все содержимое буфера

  • io.IncrementalNewlineDecoder class

Last updated