假设我有这样的路径:
/folderA/folderB/folderC/item1
/folderA/folderB/folderX/item2
/folderA/folderB/folderF/item1
/folderA/folderB/folderQ/item5
Run Code Online (Sandbox Code Playgroud)
如何获取文件路径的最后两个元素?
folderC/item1
folderX/item2
folderF/item1
folderQ/item5
Run Code Online (Sandbox Code Playgroud)
我知道我可以 git 目录或文件
>>> os.path.basename('/folderA/folderB/folderC/item1')
>>> item1
>>> os.path.dirname('/folderA/folderB/folderC/item1')
>>> /folderA/folderB/folderC/
Run Code Online (Sandbox Code Playgroud)
ita*_*ter 11
from pathlib import Path
path = r"/folderA/folderB/folderC/item1"
Path(*Path(path).parts[-2:])
Run Code Online (Sandbox Code Playgroud)
输出:
PosixPath('folderC/item1')
Run Code Online (Sandbox Code Playgroud)
注意:如果您愿意,可以将PosixPath对象转换为 str
import os
path = r"/folderA/folderB/folderC/item1"
Run Code Online (Sandbox Code Playgroud)
对于 Windows:
os.sep.join(path.rsplit(r"/")[-2:])
Run Code Online (Sandbox Code Playgroud)
独立于操作系统:
os.sep.join(os.path.normpath(path).split(os.sep)[-2:])
Run Code Online (Sandbox Code Playgroud)