簡體   English   中英

Python 的 pathlib 獲取父級的相對路徑

[英]Python's pathlib get parent's relative path

考慮以下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))

你可以使用.parts

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

打印:

'documents/importantdocuments'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM