考虑以下路径(Path)
:
import pathlib
path = pathlib.Path(r'C:\users\user1\documents\importantdocuments')
我怎样才能从那个 Path
中提取确切的字符串 documents\importantdocuments
呢?
我知道这个例子看起来很傻,实际上背后的意义是将本地文件翻译成远程下载链接。
考虑以下路径(Path)
:
import pathlib
path = pathlib.Path(r'C:\users\user1\documents\importantdocuments')
我怎样才能从那个 Path
中提取确切的字符串 documents\importantdocuments
呢?
我知道这个例子看起来很傻,实际上背后的意义是将本地文件翻译成远程下载链接。
使用 PurePath.relative_to()
方法生成相对路径。
你没有明确说明基本路径如何确定,这里有两个选项:
secondparent = path.parent.parent
homedir = pathlib.Path(r'C:\users\user1')
那么只需在path.relative_to(secondparent)
或path.relative_to(homedir)
的结果上使用str()
即可。
演示:
>>> 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'
这适用于任何操作系统和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))
documents\importantdocuments
。 - MojimiPath(r'C:\users\user1')
,那就是参考路径? - Martijn Pieters