Python Glossary English

все Python 3ioпонятие

io

модуль

Основа ввода-вывода: файловые объекты для текста и байтов и их подмена в памяти — StringIO и BytesIO.

Синтаксис

import io

Сам open() — это io.open, поэтому модуль импортируют не ради файлов на диске, а ради StringIO и BytesIO: они ведут себя как файл, но живут в памяти, и ими удобно подменять файл в тестах. Текст и байты здесь разведены строго: в StringIO пишут str, в BytesIO — bytes, и перепутанный тип даёт TypeError. После записи позиция стоит в конце, так что read() вернёт пустую строку, пока не вызвать seek(0) или getvalue().

Примеры

import io
buf = io.StringIO()
buf.write('first\nsecond\n')
print(repr(buf.read()))  # → '' — позиция в конце
buf.seek(0)
print(buf.readline().strip())  # → first
print(io.BytesIO(b'abc').read(2))  # → b'ab'

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности