Path().parent не срабатывает как ожидалось
Нужно получить ближайшего родителя текущей рабочей директории.
In [1]: Path()
Out[1]: WindowsPath('.')
In [2]: Path().parent
Out[2]: WindowsPath('.')
In [3]: Path(Path().absolute()).parent
Out[3]: WindowsPath('D:/AnaPy')
Получить желаемое мне конечно удалось, но наверняка есть лучшее решение.
Я так и не понял, почему Path().parent не срабатывает.
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
В официальной документации есть несколько предупреждений на этот счет:
You cannot go past an anchor, or empty path:
>>> >>> p = PurePosixPath('/') >>> p.parent PurePosixPath('/') >>> p = PurePosixPath('.') >>> p.parent PurePosixPath('.')Note This is a purely lexical operation, hence the following behaviour:
>>> >>> p = PurePosixPath('foo/..') >>> p.parent PurePosixPath('foo')If you want to walk an arbitrary filesystem path upwards, it is recommended to first call
Path.resolve()so as to resolve symlinks and eliminate“..”components.
Поэтому сначала воспользуйтесь .resolve(), как советуют в документации:
Path().resolve().parent
а еще лучше более явно указать текущий путь:
Path('.').resolve().parent