Python Glossary English

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