Замена пути к домашней папке пользователя на ~
Есть программа: на вход подаётся рабочий путь через 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)