все 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Сообщить о неточности