Python 3.2+osфункция
os.fsdecode
os — кодирование путей
Декодирует путь (bytes) в str из кодировки файловой системы.
Синтаксис
os.fsdecode(filename)
Недекодируемые байты не вызывают ошибку, а превращаются в суррогатные символы: такая строка годится для повторного открытия файла, но при печати или записи в UTF-8 вызовет UnicodeEncodeError. Для показа пользователю безопаснее repr() или decode с errors='replace'. str возвращается без изменений.
Примеры
import os
print(os.fsdecode(b'abc')) # → abc
print(os.fsdecode('abc')) # → abc
print(os.fsdecode(b'\xd0\xb4\xd0\xb0\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xb5.txt')) # → данные.txt
print(sorted(os.fsdecode(n) for n in os.listdir(b'.'))) # → имена файлов текущего каталога как str, например ['data.txt', 'main.py']
print(os.fsdecode(5)) # → TypeError: expected str, bytes or os.PathLike object, not int
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности