拆分路径的简洁方法,使其包含文件名和 Python 中的两个目录?

Concise way to split a path so that it includes the filename and two directories up in Python?

分割路径的最简洁方法是什么,以便它包含文件名和 Python 中的两个目录?

>>> path = r'/absolute/path/to/file.txt'
>>> os.path.dirname(path)

给出:

/absolute/path/to

同时:

>>> from pathlib import Path
>>> path = r'/absolute/path/to/file.txt'
>>> Path(path).parents[1]

给出:

/absolute/path

给我最简洁的攻略是什么:

to/file.txt

?

>>> os.path.join(*pathlib.Path(path).parts[-2:])
'to/file.txt'

这是一种方式。

path = r'/absolute/path/to/file.txt'

res = '/'.join(path.split('/')[-2:])

print(res)
# to/file.txt

一个不太简洁但更好的替代方案:

res = os.path.join(*os.path.normpath(path).split(os.sep)[-2:])