Python Glossary English

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