Python Glossary English

Python 3.10+ioфункция

io.text_encoding

служебные

Возвращает переданную кодировку, а для None — кодировку текста по умолчанию: 'locale', а в режиме UTF-8 — 'utf-8'; помогает библиотекам корректно передавать encoding (3.10+).

Синтаксис

io.text_encoding(encoding)

Функция ничего не открывает и не проверяет: любую непустую строку она возвращает как есть, включая несуществующее имя кодека — ошибка всплывёт уже в open(). При encoding равном None возвращается не имя кодировки, а строка 'locale' (или 'utf-8', если включён UTF-8-режим), которую open() понимает. Смысл вызывать её в своих обёртках над open() в том, что под -X warn_default_encoding она выдаст EncodingWarning, и благодаря stacklevel=2 предупреждение укажет на того, кто вызвал вашу обёртку, а не на саму обёртку.

Примеры

import io
print(io.text_encoding('utf-8'))   # → utf-8
print(io.text_encoding('cp1251'))   # → cp1251
print(io.text_encoding('no-such-codec'))   # → no-such-codec
print(io.text_encoding('utf-8', 3))   # → utf-8
print(io.text_encoding(None) in ('locale', 'utf-8'))   # → True

См. также

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