Python的pathlib获取父级的相对路径

时间:2019-01-28 12:23:23

标签: python python-3.x python-3.7 pathlib

请考虑以下Path

import pathlib
path = pathlib.Path(r'C:\users\user1\documents\importantdocuments')

如何从该Path中提取确切的字符串'documents \ importantdocuments?

我知道这个示例看起来很愚蠢,这里的真实上下文是将本地文件转换为远程下载链接。

3 个答案:

答案 0 :(得分:3)

使用PurePath.relative_to() method产生相对路径。

您不清楚如何确定基本路径;这里有两个选择:

secondparent = path.parent.parent
homedir = pathlib.Path(r'C:\users\user1')

然后仅在str()path.relative_to(secondparent)结果上使用path.relative_to(homedir)

演示:

>>> import pathlib
>>> path = pathlib.Path(r'C:\users\user1\documents\importantdocuments')
>>> secondparent = path.parent.parent
>>> homedir = pathlib.Path(r'C:\users\user1')
>>> str(path.relative_to(secondparent))
'documents\\importantdocuments'
>>> str(path.relative_to(homedir))
'documents\\importantdocuments'

答案 1 :(得分:0)

您可以使用.parts

     public ConnectDB()
{
    Initialize();
}
.   
.
.
public void UserAuthCommd()

打印:

import pathlib
path = pathlib.PureWindowsPath(r'C:\users\user1\documents\importantdocuments')
print ('/'.join(path.parts[-2:]))

答案 2 :(得分:0)

这适用于任何操作系统和Python的每个版本:

import os
os.path.join(os.path.basename(os.path.dirname(p)),os.path.basename(p))

这适用于python 3:

str(p.relative_to(p.parent.parent))