Python 3.6+osфункция
os.fspath
os — кодирование путей
Возвращает путь как str/bytes: для строки — её саму, для объекта с __fspath__ (напр. Path) — его результат.
Синтаксис
os.fspath(path)
Это протокол путей из PEP 519: функция, принимающая путь, вызывает os.fspath и так одинаково работает со строкой, байтами и pathlib.Path. Чтобы свой класс понимался как путь, достаточно определить __fspath__. Число или None дают TypeError, а не строку '1' или 'None', — поэтому функция удобна и как проверка аргумента.
Примеры
import os
import pathlib
print(os.fspath('a/b')) # → a/b
print(os.fspath(b'a/b')) # → b'a/b'
p = pathlib.PurePosixPath('/tmp/data.txt')
print(os.fspath(p)) # → /tmp/data.txt
print(os.path.basename(os.fspath(p))) # → data.txt
print(os.fspath(5)) # → TypeError: expected str, bytes or os.PathLike object, not int
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности