Python Glossary English

все Python 3osфункция

os.path.expanduser

os.path — абсолютизация

Заменяет ведущий `~` (или `~user`) на домашний каталог пользователя; без `~` путь не меняется.

Синтаксис

os.path.expanduser(path)

Раскрывает тильду только в начале пути: 'a~b' останется как есть. Если пользователя ~name нет, путь возвращается без изменений и без ошибки — проверяйте результат. На Unix домашний каталог берётся из переменной HOME, на Windows — из USERPROFILE. Интерпретатор сам тильду в путях не раскрывает: open('~/x') ищет каталог с именем '~'.

Примеры

import os
print(os.path.expanduser('foo'))   # → foo
print(os.path.expanduser('~'))   # → домашний каталог пользователя, например /home/user
cfg = os.path.expanduser('~/.config/app.json')
print(os.path.isabs(cfg))   # → True (типовой приём: путь к конфигу в домашнем каталоге вместо жёсткого /home/...)
print(os.path.expanduser('/tmp/~/x'))   # → /tmp/~/x (раскрывается только ведущий '~', внутри пути он остаётся символом)
print(os.path.expanduser('~несуществующий/x'))   # → только Unix: '~несуществующий/x' без изменений — такого пользователя нет, исключение не бросается

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности