Python Glossary English

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