Я знаю, как разрешить относительный путь, например '..\input\file\hello.txt'
, в абсолютный путь относительно текущего рабочего каталога:
from pathlib import Path
rel_path = Path(r'..\input\file\hello.txt')
print(f'Absolute path: {rel_path.absolute()}'
Вывод, если cwd
равно C:\project\source\
:
C:\project\source\..\input\file\hello.txt
И я также использовал .resolve()
для полного разрешения косвенных указаний:
from pathlib import Path
rel_path = Path(r'..\input\file\hello.txt')
print(f'Resolved path: {rel_path.resolve()}'
Вывод, когда cwd
равен C:\project\source\
:
C:\project\input\file\hello.txt
Как я могу разрешить путь относительно любого пути без изменения текущего рабочего каталога (если он вообще есть)? И даже когда мне нужно изменить текущий рабочий каталог, как я могу полностью разрешить путь, который на самом деле не существует? (поскольку .resolve()
работает только для существующих объектов)
Например, использование мнимого get_relative_to()
:
get_relative_to(r'..\input\file\hello.txt', r'X:\bogus\folder')
в идеале вернет 'X:\bogus\input\file\hello.txt'