Замена пути к домашней папке пользователя на ~

Есть программа: на вход подаётся рабочий путь через os.getcwd(). Он вернёт условно "C:\Users\Poop\Desktop".

Мне нужно сделать так, чтобы выводился изменённый путь. В моём случае это замена домашней папки на ~, как в Linux. Должен быть вывод "~\Poop\Desktop".

Я помню что в библиотеке os была такая функция, но я не могу вспомнить как она называется?


Ответы (2 шт):

Автор решения: Amgarak

Можно сперва получить путь с домашним каталогом пользователя, затем найти эту подстроку в строке пути и заменить её на ~.

import os

path = os.getcwd() # C:\Users\Amgarak\AppData\Local\Programs\Python\Python311
home = os.path.expanduser("~") # C:\Users\Amgarak

if path.startswith(home):
    custom_path = path.replace(home, "~", 1) # ~\AppData\Local\Programs\Python\Python311
else:
    custom_path = path

→ Ссылка
Автор решения: insolor

С помощью pathlib.Path:

from pathlib import Path

cwd = Path.cwd()
home = Path.home()
tilda_relative_path  = "~" / cwd.relative_to(home)
print(tilda_relative_path)
→ Ссылка