Python 3.2+osфункция
os.fsencode
os — кодирование путей
Кодирует путь (str) в bytes в кодировке файловой системы.
Синтаксис
os.fsencode(filename)
Использует кодировку файловой системы и обработчик surrogateescape, поэтому имя, прочитанное как str с недекодируемыми байтами, возвращается в исходные байты без потерь. bytes возвращаются без изменений. Нужна, когда системный вызов или внешняя библиотека принимает путь только байтами.
Примеры
import os
import pathlib
print(os.fsencode('abc')) # → b'abc'
print(os.fsencode(b'abc')) # → b'abc'
print(os.fsencode('данные.txt')) # → b'\xd0\xb4\xd0\xb0\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xb5.txt'
print(os.fsencode(pathlib.PurePosixPath('/tmp/data.txt'))) # → b'/tmp/data.txt'
print(os.fsdecode(os.fsencode('данные.txt'))) # → данные.txt
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности