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.DEFAULT_BUFFER_SIZE - размер буфера по умолчанию
не заполнено...
Иерархия классов
Базовые классы ввода-вывода
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 - базовый класс для двоичных потоков, поддерживающих буферизацию
Ввод-вывод необработанных файлов
io.FileIO class
Буферизованные потоки
Буферизованные потоки ввода-вывода обеспечивают интерфейс более высокого уровня для устройства ввода-вывода, чем необработанный ввод-вывод.
io.BytesIO class - реализация потока с использованием байтового буфера в памяти
getbuffer ()
getvalue () - возвращает все байты, содержащиеся в буфере
read1 ()
readinto1 ()
io.BufferedReader class
peek ()
read () - читает и возвращает количество байтов заданного размера
read1 ()
io.BufferedWriter class
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