Ответ, данный Андреем, не совсем корректен.
В Python потоки являются "файловыми" объектами.Вы можете читать / записывать их, используя инструменты, определенные в модуле io .Модуль также предоставляет интерфейсы, которые вы должны реализовать, если хотите определить объект потока.
Обратите внимание, что модуль io
различает три различных типа потоков, которые требуют немного разных интерфейсов.(В основном они различаются по типам данных.)
- Текстовый интерфейс ввода-вывода TextIOBase
- Двоичный интерфейс ввода-вывода BufferedIOBase
- Необработанный интерфейс ввода-вывода RawIOBase
Например, StringIO является реализацией TextIOBase в памяти.
Примечаниечто эти интерфейсы доступны как в Python 2, так и в 3.