import io fp = io.TextIOWrapper(buffer, encoding=None, errors=None, newline=None, line_buffering=False, write_through=False)
Класс io.TextIOWrapper() это буферизованный текстовый поток поверх двоичного потока io.BufferedIOBase. Класс io.TextIOWrapper() наследует класс io.TextIOBase.
Аргумент encoding дает название кодировки, в которую будет декодирован или закодирован поток. По умолчанию равен значению locale.getpreferredencoding(False).
Аргумент errors необязательная строка, которая определяет, как должны обрабатываться ошибки кодирования и декодирования.
Значения errors:
'strict' вызывает исключение ValueError, если есть ошибка кодирования (значение по умолчанию None, которая имеет тот же эффект),'ignore' чтобы игнорировать ошибки. Обратите внимание, что игнорирование ошибок кодирования может привести к потере данных.'replace' приводит к тому, что маркер замены, например '?' вставляется там, где имеются искаженные данные.'backslashreplace' приводит к замене искаженных данных обратной escape-последовательностью.'xmlcharrefreplace' заменяет искаженные данные на соответствующую ссылку на XML символ'namereplace' заменяет искаженные данные на \N{...} escape-последовательности.Также допустимо использование любое другое имя обработчика ошибок, которое было зарегистрировано в codecs.register_error() .
Аргумент newline - символ новой строки, который управляет обработкой концов строк. Это может быть None, '', '\n', '\r', и '\r\n'.
Аргумент newline работает следующим образом:
newline является None, то включен режим универсальный символ новой строки. Строки на входе могут оканчиваться на '\n', '\r' или '\r\n' и они преобразуются в '\n' перед возвратом вызывающей стороне. Если newline='', универсальный режим перевода строки включен, но окончания строки возвращаются вызывающей стороне без '\n'. Если он имеет какие-либо другие допустимые значения, входные строки заканчиваются только данной строкой, а окончание строки возвращается вызывающей стороне без '\n'.newline является None, то любые символы '\n', будут переведены в системный разделитель строки системы по умолчанию os.linesep. Если newline='' или newline='\n', то перевод символов новой строки не выполняется. Если символ новой строки newline является любым из других допустимых значений, любые '\n' символы переводятся в newline.Если line_buffering равно True, то подразумевается TextIOBase.flush(), когда вызов для записи содержит символ перевода строки или возврат каретки.
Если write_through равно True, вызовы TextIOBase.write() гарантированно не буферизуются. То есть любые данные, записанные в объекте io.TextIOWrapper, немедленно обрабатываются в его базовый двоичный буфер.
Класс io.TextIOWrapper наследует атрибуты и методы из класса io.TextIOBase, а так же дополнительно предоставляет или переопределяет несколько атрибутов и методов.
Смотрите пример использования io.TextIOWrapper.
io.TextIOWrapper:TextIOWrapper.line_buffering:Атрибут TextIOWrapper.line_buffering проверяет включена ли буферизация строки.
TextIOWrapper.write_through:Атрибут TextIOWrapper.write_through проверяет, передаются ли немедленно записи в основной двоичный буфер.
TextIOWrapper.reconfigure(*[, encoding] [, errors] [, newline] [, line_buffering] [, write_through]):Метод TextIOWrapper.reconfigure() переконфигурирует текстовый поток fp, используя новые настройки для кодирования encoding, обработчика ошибок errors, newline, line_buffering и write_through.
Не указанные параметры сохраняют текущие настройки, за исключением когда указана новая кодировка encoding, а ошибки errors указаны не были, то в этом случае errors='strict'.
Невозможно изменить кодировку encoding или символ новой строки newline, если некоторые данные уже были прочитаны из потока. С другой стороны, изменение кодировки после записи возможно.
Этот метод выполняет неявную очистку потока перед установкой новых параметров.
TextIOWrapper.seek(cookie, whence=os.SEEK_SET, /):Метод TextIOWrapper.seek() задает позицию потока. Возвращает новую позицию потока в виде целого числа int. Поддерживаются четыре операции, заданные следующими комбинациями аргументов:
.seek(0, os.SEEK_SET): перемотка к началу потока..seek(cookie, os.SEEK_SET): восстановление предыдущей позиции. Аргумент cookie должен быть числом, возвращаемым TextIOBase.tell()..seek(0, os.SEEK_END): быстрая перемотка к концу потока..seek(0, os.SEEK_CUR): оставляет текущую позицию потока неизменной.Любые другие комбинации аргументов недопустимы и могут вызывать исключения.
_Значения констант os.SEEK_*_:
os.SEEK_SET имеет значение 0.os.SEEK_CUR имеет значение 1.os.SEEK_END имеет значение 2.